java-web8-Session基础知识

本文详细介绍了HTTP Session的概念,包括其在用户登录、购物车信息存储等场景中的应用。通过示例代码展示了如何获取和使用Session,并讨论了Session的自动和手动注销机制。同时,对比了Session与Cookie的区别,强调Session在服务器端存储用户信息的安全性和效率优势。
摘要由CSDN通过智能技术生成

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>
8.4 session和cookie区别
  • cookie把用户数据写给用户浏览器,浏览器保存多个
  • session把用户数据写到用户自己的session中,服务器端保存。(保存重要的信息,减少服务器资源的浪费)
  • session由服务器创建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值