什么是session

session表示客户端与服务器的一次会话

Web中的session指的是用户在浏览某网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间

从上述定义可得,session实际上是一个特定的时间概念

在服务器的内存中保存着不同用户的session

session对象

session对象是一个JSP内置对象

session对象在第一个JSP页面被装载时自动创建,完成会话期管理

从一个客户打开浏览器并连接到服务器开始,到用户关闭浏览器离开这个服务器结束,被称为一个会话

当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这个同一个客户,就需要session对象

session对象是HttpSession类的实例

session对象常用方法如下:

long getCreationTime() 返回SESSION创建时间

<h1>session内置对象</h1> <br>
    <%
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = new Date(session.getCreationTime());
     %>
    session创建时间<%=sdf.format(d)%>

 

public String getId() 返回SESSION创建时JSP引擎为它设的唯一ID号

public Object setAttribute(String name , Object value) 使用指定名称将对象绑定到此会话

public Object getAttribute(String name) 返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null

String [] getValueNames() 返回一个包含此SESSION中所有可用属性的数组

int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(单位秒)

Session生命周期

创建阶段:当客户端第一次访问某个jsp或者Servlet时候,服务器会为当前会话创建一个SessionId,每次客户端向服务端发送请求时,都会将此SessionId携带进去,服务端会对此SessionId进行校验。

活动阶段:某次会话当中通过超链接打开的新页面属于同一次会话。只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话。除非本次会话的所有页面都关闭再重新访问某个JSP或者Servlet将会创建新的会话。

*注意原有会话还存在,只是这个旧的SessionId仍然存在于服务器端,只不过再也没有客户端会携带它然后交予服务器校验。除非它已经超时

销毁阶段(三种方式):

1.调用了session.invalidate()方法

2.Session过期(超时)

Tomcat默认session超时时间为30分钟

设置session超时有两种方式

a.session.setMaxInactiveInterval(时间);//单位是秒

b.在web.xml配置

<session-config>
<session-timeout>
 10
</session-timeout>
</session-config>
//单位是分钟

 

3.服务器重新启动

 

Posted on 2018-03-13 18:21  ZHONGLINGHUI  阅读(140)  评论(0编辑  收藏  举报