Cookie和Session

10 篇文章 0 订阅
5 篇文章 0 订阅

Cookie:

  • Cookie:饼干,其实就是一份小数据,是服务器给客户端,并且存储在客户端上的一份小数据
  • 应用场景:自动登录,浏览记录。
  • 为什么有Cookie:http的请求是无状态的,客户端与服务器在通讯的时候,是无状态的,就是客户端在二次访问的时候,服务器根本不知道这个客户端之前有没有访问过,未了更好的交互,用户体验,收集用户习惯。
  • Cookie的使用:
    • 响应Cookie(发送或添加Cookie)
      1. 在响应的时候添加cookie
      2. 在客户端收到的信息里,响应头中多了一个字段:Set-Cookie:aa=bb
      3. 代码如下:
                response.setCharacterEncoding("UTF-8");
                response.setHeader("Content-Type","text/html;charset=UTF-8");
        
                Cookie cookie=new Cookie("aa","bb");
                response.addCookie(cookie);
                response.getWriter().write("请求成功");
    • 获取Cookie
      1. 获取客户端带来的cookie:
         //客户端的第二次请求会带着Cookie过来
                Cookie[] cookies = request.getCookies();
                if(cookies!=null){
                    for (Cookie c:cookies) {
                        System.out.println(c.getName());
                        System.out.println(c.getValue());
                        System.out.println(c.getName()+":"+c.getValue());
                    }
                }

         

      2.  Cookie的分类(有效期):

        1. 会话Cookie:默认情况下,关闭浏览器,Cookie就会消失;

        2. 持久Cookie:在一定时间内都有效,并且会保存在客户端上;cookie.setMaxAge(10);

                   //发送多个Cookie
                  Cookie cookie1=new Cookie("sex","male");
                  response.addCookie(cookie1);
                  Cookie cookie2=new Cookie("age","18");
                  response.addCookie(cookie2);
          
                  //cookie的有效期,默认情况下,关闭浏览器Cookie就没有了(没有设置Cookie的有效期)
                  //参数(expiry)以秒计算
                  //正值:表示Cookie在过这个时间之后,Cookie将会失效
                  //负值:关闭浏览器,Cookie将会失效
                  cookie1.setMaxAge(10);
          
                  //只有访问该域名下的cookie的这个路径才会带cookie
                  cookie1.setPath("/test_servlet02");
          

           

      3. Cookie的安全问题:

        1. 由于Cookie会保存在客户端上,所以有安全隐患,

        2. cookie的大小和个数有限,为解决这些问题出现了Session

  • * Session

            也是基于cookie的一种会话技术,  数据存放存放在服务器端
        
            会在cookie里面添加一个字段 JSESSIONID . 是tomcat服务器生成。 

            setAttribute 存数据
     
            getAttribute 取数据

            removeAttribute  移除数据

            getSessionId();  获取会话id

            invalidate() 强制让会话失效。

    * 创建和销毁

        ,调用request.getSesion创建 
        
         服务器关闭 , 会话超时(30分)


    setAttribute 存放的值, 在浏览器关闭后,还有没有。  有!,就算客户端把电脑砸了也还有。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值