JavaWeb--Session

Session

什么是Session:
- 服务器会为每一个用户(浏览器)创建一个Session对象
- 一个Session独占一个浏览器,只要浏览器没有关闭,这个session就一存在
- 用户登录后,这个网站的页面都可以访问–》保存用户的信息,购物车信息

创建Session
 //解决乱码问题
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");

        //得到session
        HttpSession session = req.getSession();

        //给session存对象
//        session.setAttribute("name","数据");
        //给session存一个类对象
        session.setAttribute("name", new Persion("王默",19));

        //获取session的ID,每个浏览器的唯一标识符
        String sessionId = session.getId();

        //判断session是不是新创建的
        if (session.isNew()){
            resp.getWriter().write("session创建成功ID:" + sessionId );
        }else {
           resp.getWriter().write("session已经在服务器中存在了,ID;"+ sessionId);
        }

        //session创建时所做的事情
        //Cookie cookie = new Cookie("JSESESSION", sessionId);
        //resp.addCookie(cookie);
获取创建Session里面的值
 //获取session
        HttpSession session = req.getSession();

        //取出session里的name值是String对象
        //String name = (String) session.getAttribute("name");
        //取出session里面name值是Person类对象
        Persion name = (Persion) session.getAttribute("name");
        
        //打印
        System.out.println(name);
注销Session
  • 手动注销
        HttpSession session = req.getSession();

        session.removeAttribute("name");
        //手动注销session
        session.invalidate();
  • 自动注销 在web.xml文件里
    <session-config>
	<!-- 设置session(会话)的自动过期时间,单位为分钟-->
        <session-timeout>1</session-timeout>
    </session-config>
Session和cookie的区别:
  • Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
  • Session把用户的数据写到用户独占Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费)
  • Session对象由服务器创建
使用场景:
  • 保存一个登录用户的信息
  • 购物车信息
  • 在整个网站中经常使用的数据,我们将它保存在Session中;

Cookie的使用图解
在这里插入图片描述
Session使用图解
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值