10 Cookie/Session 解释和JavaWeb代码应用

Cookie\Session

会话

会话:用户打开浏览器,访问了多个web资源这个 过程可以称之为会话

保存会话的两种技术

cookie

  • 客户端技术(响应,技术)

session

  • 服务器技术,利用这个技术,可以保存用户的会话信息 ?我们可以把信息或者数据放在Session中!

常见:网站登陆之后下次不用再登录。

Cookie

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CUYIMI73-1618655927545)(D:\ADeskTop\大三下学期\JAVA\Java Web\03 Cookie Session.assets\image-20210411203330025.png)]

  • 从请求拿到cookie信息
  • 服务器响应个客户端cookie
 Cookie[] cookies = req.getCookies();//返回数组,说明存在多个
cookie.getName(); //获得cookie中的key
cookie.getValue(); //获得value
new Cookie("key","value");//新建一个cookie
cookie.setMaxAge(24*60*60);//设置cookie的有效期
resp.addCookie(cookie);//响应给客户端一个cookie

删除Cookie

  • 不设置有效期

编码解码 出现中文乱码

URLEncoder.encode("叶炳龙","utf-8");
URLDecoder.decode(cookie.getValue(),"utf-8")

Session(重点)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eUI4mpKY-1618655927549)(D:\ADeskTop\大三下学期\JAVA\Java Web\03 Cookie Session.assets\image-20210411203352020.png)]

什么session:

  • 服务器会给每个浏览器都会创建一个Session对象 ,多个浏览器 多个Session

  • 只要浏览器没关,Session就存在

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tKomQODq-1618655927554)(D:\ADeskTop\大三下学期\JAVA\Java Web\03 Cookie Session.assets\image-20210411200511258.png)]

Session和Cookie的区别

  • Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
  • Session把用户的数据写到用户独占的Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费)
  • Session对象由服务器创建

使用场景:

  • 保存一个登录用户的信息
  • 购物车信息
  • 在整个网站中经常会使用的数据,我们将它保存在Session中
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //得到session
        HttpSession session = req.getSession();
        //给session中存东西 ,也可以存对象如 session.setAttribute("name",new Person("ybl",21));
        session.setAttribute("name","叶炳龙");
        //别的servlet中取
        String  name=(String)session.getAttribute("name");
        //获取session id
        String id=session.getId();

        //注销session 
        session.invalidate();


        //判断session是不是新创建
        if(session.isNew()){

        }else{

        }
    }
web.xml的配置
<!--  默认的session配置-->
<session-config>
    <!--    15分钟后失效-->
    <session-timeout>15</session-timeout>
</session-config>

ServletContext和Session

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U8Lw0j5f-1618655927557)(D:\ADeskTop\大三下学期\JAVA\Java Web\03 Cookie Session.assets\image-20210411203546040.png)]

ServletContex可以用来统计多少人来这个网站,他的作用域是整个web应用,而不用Session来统计,因为Session只能在会话的作用域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值