当前位置:  首页  >  前端开发  >  设计思想

JSP详细篇——session

JSP详细篇之session

session对象

通过session可以在应用程序的Web页面之间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到浏览器关闭。但是在一个会话中,客户端长时间不向服务器发出请求,session会自动消失。这个时间取决于服务器,可以通过程序进行修改。

1.创建及获取客户的会话

通过sessionsetAttribute()getAttribute()方法实现。

setAttribute()方法的语法格式:

session.setAttribute(String name,Object obj)

参数说明:

name:变量名

obj:保存在session范围的对象

范例:

将用户名“张三”保存到session范围的username变量中

session.setAttribute(“usernme1”,”张三”);

 

 

getAtrribute()的语法格式

getAttrbite(String name);

参数说明:

name:保存在session变量范围的参数名

getAttribute()方法的返回值是Object类型。

2.从会话中移除指定的绑定对象

removeAttribute()的语法格式:

removeAttribute(String name)

参数说明:

name:session中的变量名

范例:

将保存在session中的username移除

<%

session.removeAttribute(“username”);

%>

 

3.销毁session对象

session对象的invalidate()方法可以销毁session,其语法格式为:

Session.invalidate();

session对象被销毁后,将不可在使用session对象,否则将报出Session already invalidate异常

4.会话超时的管理

session对象中提供了设置会话生命周期的方法:

getLastAccessTime ():返回客户端最后一次与会话有关的请求时间

 

 

getMaxInactiveInterval():以秒为单位,返回一个会话内两个请求的最大时间间隔

 

setMaxInactiveInterval():以秒为单位,设置session的有效时间

5.session对象的应用

范例:

index.jsp页面中,提供用户输入用户名的文本框;在session.jsp页面中,将用户 输入的用户名保存在session中,用户在该页面可以添加最喜欢的地方,在result .jsp页面中,显示用户输入的用户名和最喜欢的地方

index.jsp页面如下

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'index.jsp' starting pagetitle>

    

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

 

  head>

  

  <body>

    <form id="form1" name="form1" method="post" action="session/session.jsp">

     <div align="center">

     <table width="30%" border="1">

     <tr>

     <td width="40%"><div align="center">您的名字是:div>td>

     <td width="60%">

     <lable>

     <div align="center">

     <input type="text" name="name">

     div>

     lable>

     td>   

     tr>

     <tr>

     <td colspan=“2”>

     <lable>

     <div align="center">

     <input type="submit" name="submit" value="提交" />

     div>

     lable>

     td>

     tr>

     table>

     div>

    form>

  body>

html>

 

 

 

Result.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%

    String place = request.getParameter("place");

    session.setAttribute("place",place);//获取保存在session中的对象

    String name = request.getParameter("name");

%>

 

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>result pagetitle>

    

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

 

  head>

  

  <body>

    

    <form id="form1" name="form1" method="post" action="">

     <table width="30%" border="1">

     <tr>

     <td colspan="2">

     <div align="center">

     <stron>显示答案:

     stron>

     div>

     td>

     tr>

     <tr>

     <td width="45%">

     <div align="left">

     您的名字是:

     div>

     td>

     <td width="55%">

     <label>

     <div align="left">

     <%=name %>

     div>

     label>

     td>

     tr>

     <tr>

     <td>

     <label>

     <div align="left">

     您喜欢的地方是:

     div>

     label>

     td>

     <td>

     <div align="left">

     <%=place %>

     div>

     td>

     tr>

     table>

    form>

  body>

html>

 

 

 

Session.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%

    String name = request.getParameter("name");//获取填写的用户名

    session.setAttribute("name", name);//将用户名保存在session中

%>

 

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>session jsptitle>

    

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

 

  head>

  

  <body>

 

    <div align="center">

     <form id="form1" name="form1" method="post"  action="session/result.jsp">

     <table width="30%" border="1">

     <tr>

     <td>您的名字是:td>

     <td><%=name %>td>

     tr>

     <tr>

     <td>您最喜欢的地方是:td>

     <td>

     <label>

     <input type="text" name="place">

     label>

     tr>

     <tr>

     <td colspan="2">

     <label>

     <div align="center">

     <input type="submit" name="submit" value="提交" />

     div>

     label>

     table>

     form>

    div>

  body>

html>




吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有