HttpSession对象简介说明
下文笔者将讲述HttpSession对象的相关简介说明,如下所示:
Session是服务器端对象
保存在服务器
它的底层是依赖Cookie或URL重写(jsessionid)
httpSession会话范围:
当用户第一次访问服务器时,到用户退出服务器,这是一个完整的Session会话周期
当用户未对服务器进行操作时,则服务器端的Session会过期并消失
HttpSession简介
HttpSession是由JavaWeb提供用来会话跟踪的类Session是服务器端对象
保存在服务器
它的底层是依赖Cookie或URL重写(jsessionid)
httpSession会话范围:
当用户第一次访问服务器时,到用户退出服务器,这是一个完整的Session会话周期
当用户未对服务器进行操作时,则服务器端的Session会过期并消失
创建session
- 当前的JSP是客户端访问的当前WEB应用的第一个资源
JSP的page指定的session属性值为 false
则服务器就不会为JSP创建一个 HttpSession对象 - 当前JSP不是客户端访问的当前WEB应用的第一个资源
且其他页面已经创建一个HttpSession 对象
则服务器也不会为当前 JSP 页面创建一个HttpSession对象
而回会把和当前会话关联的那个HttpSession对象返回给当前的JSP页面 - Serlvet是客户端访问的第一个WEB应用的资源
则只有调用了request.getSession()或request.getSession(true)才会创建 HttpSession对象
获取session
- 获取cookie中的request.getSession()方法,获取Cookie中的SessionId
- 如果SessionId不存在,创建Session,把Session 保存起来,把新创建的SessionID保存到cookie中
- 如果SessionId存在,通过SessionId查找Session对象,如果没有查找到,创建Session,把Session保存到新创建的SessionId的cookie中
- 如果SessionId存在,通过SessionId查找到了Session对象,那么就不会再创建Session对象了
- 返回Session
销毁session
1. 调用 HttpSession 的 invalidate() 方法, 该方法使 HttpSession 失效 2. 服务器卸载了当前 WEB 应用. 3. 超出 HttpSession 的过期时间. 设置 HttpSession 的过期时间: session.setMaxInactiveInterval(5); 单位为秒 在 web.xml 文件中设置 HttpSession 的过期时间: 单位为分钟. <session-config> <session-timeout>30</session-timeout> </session-config> 4. 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。
URL重写session操作
Session依赖cookie,目的是让客户端发出请求时归还SessionId,这样才能找到对应的Session,如果客户端禁用了cookie,那么就无法得到SessionId URL重写的方式替代cookie ,让网站的所有超链接,表单中都添加一特殊的请求参数即SessionId,这样服务器可以通过获取请求参数得到SessionId,从而获得Session对象 response.encode(String url)这个方法会对URL进行智能的重写,当请求中没有归还SessionId这个cookie,那么这个方法会重写URL,否则不重写,url必须是指向本站的url
session机制采用的是在服务器端保持 HTTP 状态信息的方案 当程序需要为某个客户端的请求创建一个session时 服务器首先检查这个客户端的请求里是否包含了一个session标识(即sessionId) 如果已经包含一个sessionId则说明以前已经为此客户创建过session, 服务器就按照session id把这个session检索出来使用(如果检索不到, 可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象, 但用户人为地在请求的URL后面附加上一个JSESSION的参数) 如果客户请求不包含sessionId,则为此客户创建一个session并且生成一个与此session相关联的sessionId 这个session id将在本次响应中返回给客户端保存。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。