简述session
1.Session概述
* session是服务器端技术 * 服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象 * 由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中 * 当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务 * session也是基于cookie技术的,传递是session的id值
2.Session对象的API
* void setAttribute(String name, Object value) * Object getAttribute(String name) * void removeAttribute(String name) * String getId() -- session的空间有唯一的id值,获取该id值的。 * void invalidate() -- 销毁session对象 * ServletContext getServletContext() -- 获取ServletContext域对象
3.使用request对象来获取到session的对象
* request.getSession() -- 返回HttpSession对象,第一次调用,为你创建session对象(空间)
4.Session的创建和销毁
session对象的创建
* 针对是每个用户的浏览器,为每一个浏览器都创建一个独享的session的对象。 * request.getSession() -- 该方法可以创建session的对象,但是也可以来获取到session对象 * 根据cookie对象中是否有jsessionid的cookie,如果有,通过id值查找,找到了不用创建了,返回。如果没有找到,创建一个新的session对象。
session对象的销毁
* 关闭服务器销毁session * 非正常的原因关闭服务器,销毁session * 如果正常关闭服务器,session会被序列化到磁盘上。
* 配置session的默认销毁时间,默认值是30分钟
* 在tomcat/conf/web.xml文件中设置了session默认超时时间
<session-config>
<session-timeout>30</session-timeout>
</session-config>
* 设置session最大的存活的时间
* void setMaxInactiveInterval(int interval)
* 直接使用方法,销毁session
* invalidate();
5.Session域对象
5.1.session的域对象
* 作用:用来传递数据
* 区别:每个域对象的存活时间不同!!
5.2.方法
* void setAttribute(String name, Object value) * Object getAttribute(String name) * void removeAttribute(String name)
5.3.域对象(3个域对象最重要的)
* request -- 真实对象HttpServletRequest * 代表的是一次请求的范围 * 在服务器端给客户度传递一些提示的信息和查询的数据 * session -- 真实对象HttpSession * 代表的是一次会话的范围(可以发送多次请求和得到多次响应) * 保存的都是和每个用户相关的数据(登录后需要把用户的信息,购买商品需要保存起来)
* application -- 真实对象ServletContext * 代表的是一个WEB应用 * 保存全局共享的数据
作者:习惯沉淀
如果文中有误或对本文有不同的见解,欢迎在评论区留言。
如果觉得文章对你有帮助,请点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
扫码关注一线码农的学习见闻与思考。
回复"大数据","微服务","架构师","面试总结",获取更多学习资源!