- HttpSession对象介绍
-
HttpSession 对象是 javax.servlet.http.HttpSession 的实例,该接口并不像HttpServletRequest 或 HttpServletResponse 还存在一个父接口,该接口只是一个纯粹的接口。这因为 session 本身就属于 HTTP 协议的范畴。
-
对于服务器而言,每一个连接到它的客户端都是一个 session,servlet 容器使用此接口创建 HTTP 客户端和 HTTP 服务器之间的会话。会话将保留指定的时间段,跨多个连接或来自用户的页面请求。一个会话通常对应于一个用户,该用户可能多次访问一个站点。可以通过此接口查看和操作有关某个会话的信息,比如会话标识符、创建时间和最后一次访问时间。在整个 session 中,最重要的
就是属性的操作。
2. Session 的作用
-
1) Session 的作用就是为了标识一次会话,或者说确认一个用户; 2) 并且在一次会话(一个用户的多次请求)期间共享数据 3) 可以通过 req.getSession()方法,来获取当前会话的 session 对象。
3.JSESSIONID
-
1) SessionId 是标识一次会话的唯一标志。 2) 每当一次请求到达服务器,如果开启了会话(访问了 session),服务器第一步会查看是否从客户端回传一个名为 JSESSIONID 的 cookie; 3) 如果JSESSIONID不存在,则服务器会新建session对象,并重新标识; 4) 如果JSESSIONID存在,服务器会将客户端回传过来的ID去服务器中查找与之对应的session对象 <1>如果没找到,则服务器会新建session对象,并重新标识; <2>如果找到,则获取 session对象,响应给客户端;
4.Session域对象
-
1) 通过 setAttribute(name,value);方法向域对象中添加数据, 2) 通过 getAttribute(name) 从域对象中获取数据 3) 通过 removeAttribute(name)从域对象中移除数据
5.Session的失效
-
1、达到最大不活动时间 Tomcat中默认最大不活动时间为30分钟。 可以自行修改默认不活动时间,但不建议。 在web.xml文件中 <session-config> <session-timeout>30</session-timeout> </session-config> 2、自己设定过期时间 通过 session.setMaxInactiveInterval(int);来设定 session 的最大不活动时间,单位为秒。 通过 getMaxInactiveInterval();方法来查看当前 Session 对象的最大不活动时间。 3、立即失效 手动销毁session对象 session.invalidate(); 4、关闭浏览器 session的底层依赖于cookie,默认关闭浏览器失效 5、关闭服务器 非正常关闭服务器时才会失效。 如果是正常关闭服务器,session会被钝化到本地磁盘,下次访问时会从本地磁盘中活化出来。