8. Session
8.1 session阐述
- 服务器给每个用户(浏览器)创建唯一个session对象,用户拿到了唯一的sessionID
- 一个session独占一个浏览器,只要浏览器没关闭,这个session就存在
- 浏览器关闭,session也存在,只是浏览器关闭后没有cookie导致找不到对应的session,不设置都是二十分钟失效
- 用户登录后整个网站都可以使用
- 使用场景:登录信息;购物车信息;整个网站中经常使用的信息,保存在session中
8.2 session使用
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("utf-8");
//获得session
HttpSession session = req.getSession();
String sessionId = session.getId();
//session是否是新创建的
if (session.isNew()) {
resp.getWriter().write("session创建成功:"+sessionId);
}else {
resp.getWriter().write("session已经存在:"+sessionId);
}
/*将JSESSIONID放入Cookie中
Cookie jsessionid = new Cookie("JSESSIONID", sessionId);
resp.addCookie(jsessionid);*/
}
8.3 session注销
- 手动注销
HttpSession session = req.getSession();
//手动注销session,但会产生一个新的session
session.invalidate();
- 自动注销web.xml
<!--设置session默认的失效时间-->
<session-config>
<!--20分钟后session过期,以分钟为单位-->
<session-timeout>20</session-timeout>
</session-config>
- cookie把用户数据写给用户浏览器,浏览器保存多个
- session把用户数据写到用户自己的session中,服务器端保存。(保存重要的信息,减少服务器资源的浪费)
- session由服务器创建。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123939.html