Session机制
Session:在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。
采用的是在服务器端保持HTTP有状态的信息方案
服务器端首先应该判断SessionID,如果有SessionID,就证明session创建如果没有SessionID,证明还没有创建Session
会话的生命周期
1.什么时候创建HttpSession对象
浏览器访问任何JSP和Servlet页面,服务会立即创建Session对象吗?
答:不一定
若当前JSP(servlet)是客户端访问的当前web应用的第一个资源,且JSP的page指定的session 属性值为false。则服务器就不会为JSP创建一个session对象了
若当前JSP页面不是客户端访问的当前web应用的第一个资源页面,且其他页面已经创建一个HTTPSession对象,则当前JSP页面返回一个会话的HttpSession对象,而不会创建一个新的httpSession对象
对于servlet而言:若servlet是客户端访问的第一个web资源,则只用调用request.getSession方法或request.getSession(true)才会创建Session对象
2.什么时候销毁
1.直接调用HTTPSession的invalidate方法:该方法使httpSession失效
2.服务器卸载web项目
3.超过httpSession的过期时间
设置session.setMaxInactiveInterval(5);单位为秒
在web.xml文件配置session过期时间
并不是关闭浏览器就销毁HttpSeesion

当时间 > 1800 时,则销毁HttpSeesion
HttpSession:
HttpSession是java web对用户进行会话跟踪的一个接口
HttpSession由Servlet容器的提供者实现
HttpSession通过HttpServletRequst的getSession()或getSession(boolean)方法获取
getSession(): 如果会话没有被创建则创建并返回,若创建则返回已有的session对象
getSession(boolean): 如果参数是false,如果会话存在则返回,否则返回null
例:


Session中的方法
• String getId() 返回包含分配给此会话的唯一标识符的字符串


• void invalidate() 使会话无效,然后取消对任何绑定到它的对象的绑定

• void removeAttribute(String name) 从此会话中移除不指定名称绑定在一起的对象

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

• Object getAttribute(String name) 返回不此会话中的指定名称绑定在一起的对象

• void setMaxInactiveInterval(int interval) 指定在servlet容器使此会话失效之前客户端请求之间的时间间隔。负数时间指示会话永进不会超时(以秒为单位,默认为1800秒)

• int getMaxInactiveInterval() 返回servlet容器在客户端访问之间将使此会话保持打开状态的最大时间间隔


• ServletContext getServletContext() 返回此会话的ServletContext


• boolean isNew() 如果客户端还不知道该会话,或者客户端选择丌加入该会话,则返回true。例如,如果服务器仅使用基于Cookie的会话,而客户端已经禁止了Cookie的使用,则每个请求上的会话都将是新会话


在xml配置中配置session过期时间(以分钟为单位)

本文详细介绍了Session机制的概念及其在网络应用中的作用。包括Session对象如何存储特定用户的会话信息、会话的生命周期管理、创建与销毁HttpSession对象的过程以及如何在XML配置文件中设置Session的过期时间。
424

被折叠的 条评论
为什么被折叠?



