HttpSession对象的特点和使用

简介: HttpSession对象的特点和使用

HttpSession对象的特点(CreateHttpSessionServlet)
HttpSession保存在服务端
HttpSession使用Key与Value结构存储数据
HttpSession的Key是字符串类型,Value则是Object类型
HttpSession存储数据大小无限制
HttpSession对象的创建是通过request.getSession()方法来创建的。客户端浏览器在请求服务端资源时,如果在请求中没有jsessionid,getSession()方法将会为这个客户端浏览器创建一个新的HttpSession对象,并为这个HttpSession对象生成一个jsessionid,在响应中通过状态Cookie写回给客户端浏览器,如果在请求中包含了jsessionid,getSession()方法则根据这个ID返回与这个客户端浏览器对应的HttpSession对象。
getSession()方法还有一个重载方法getSession(true|false)。当参数为true时与getSession()方法作用相同。当参数为false时则只去根据jsessionid查找是否有与这个客户端浏览器对应的HttpSession,如果有则返回,如果没有jsessionid则不会创建新的HttpSession对象。

HttpSession对象的使用(CreateHttpSessionServlet)
(GetHttpSessionDataServlet)
session.setAttribute("key",value)
将数据存储到HttpSession对象中
Object value = session.getAttribute("key")
根据key获取HttpSession中的数据,返回Object
Enumeration attributeNames = session.getAttributeNames()
获取HttpSession中所有的key,返回枚举类型
session.removeAttribute("key")
根据key删除HttpSession中的数据
String id = session.getId()
根据获取当前HttpSession的SessionID,返回字符串类型
HttpSession的销毁方式(CreateHttpSessionServlet)
HttpSession的销毁方式有两种:
通过web.xml文件指定超时时间
通过HttpSession对象中的invalidate()方法销毁当前HttpSession对象
我们可以在web.xml文件中指定HttpSession的超时时间,当到达指定的超时时间后,容器就会销该HttpSession对象,单位为分钟。该时间对整个web项目中的所有HttpSession对象有效。时间的计算方式是根据最后一次请求时间作为起始时间。只要用户继续访问,服务器就会更新HttpSession的最后访问时间,并维护该HttpSession。用户每访问服务器一次,无论是否读写HttpSession,服务器都认为该用户的HttpSession"活跃(active)"了一次,销毁时间则会重新计算。如果有哪个客户端浏览器对应的HttpSession的失效时间已到,那么与该客户端浏览器对应的HttpSession对象就会被销毁。其他客户端浏览器对应的HttpSession对象会继续保存不会被销毁。

1

我们也可以在Tomcat的web.xml文件中配置HttpSession的销毁时间。如果在Tomcat的web.xml文件中配置了HttpSession的超时时间对应的是Tomcat中所有的Web项目都有效。相当于配置了全局的HttpSession超时时间。如果我们在Web项目中配置了超时时间,那么会以Web项目中的超时时间为准。

invalidate()方法是HttpSession对象中所提供的用于销毁当前HttpSession的方法。我们通过调用该方法可以销毁当前HttpSession对象。

相关文章
|
7月前
|
存储 对象存储
07JavaWeb基础 - ServletContext对象
07JavaWeb基础 - ServletContext对象
22 0
|
XML 缓存 Java
HttpServletRequest 对象
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 其他的具体方法就不详细描述了,具体方法上的使用看API,或者网上查查,有很多的。这里就介绍一下 请求方式 和 获取参数 的问题
|
监控 安全 Java
HttpSession 的 invalidate() 方法介绍
HttpSession 的 invalidate() 方法介绍
315 0
|
存储 安全 前端开发
java学习之浅谈Cookie与Httpsession对象
java学习之浅谈Cookie与Httpsession对象
java学习之浅谈Cookie与Httpsession对象
|
存储 Java 开发者
session对象
session对象
87 0
|
存储 安全
HttpSession对象总结
HttpSession与Cookie的区别:HttpSession的使用建议
|
存储 应用服务中间件
HttpSession生命周期
HttpSession生命周期
|
缓存 容器
ServletContext对象的使用
如何使用ServletContext对象
ServletContext对象
ServletContext对象原理介绍
ServletContext对象