• Cookie


    http 协议请求是无状态的请求,每一次都是基于一个请求一个响应,每一次的请求和响应都跟上次没有关系,我们需要记录之前对话的信息。

    想要记住用户状态所以要学习cookie和session,cookie和session都是会话的技术

    cookie技术是客户端保存信息的技术,也就是浏览器保存信息的技术。

    //浏览器或客户端请求服务器,服务器返回给浏览器和客户端cookie键值对。

    //arg0    arg1  分别为key value

    Cookie cookie=new Cookie("name", "tom");
    response.addCookie(cookie);
    response.getWriter().print("send cookie successed");

    当浏览器和客户端会保存这个cookie当在请求服务器的时候,传入cookie。我们可以在浏览器或客户端再起请求服务器的时候再获取到这个cookie。

    Cookie[] cookies=request.getCookies();//客户端可以记住多个cookies;
    if(cookies!=null&&cookies.length!=0){
      for (Cookie cookie : cookies) {
        if(cookie.getName().equals("name")){
        System.out.println("获得的cookie:"+cookie.getName()+":"+cookie.getValue());
      }
    }

    cookie怎么用?
    1.添加cookie到浏览器
    1>新建一个cookie(键值对)
    Cookie cookie = new Cookie("name", "tom");
    2>将cookie 添加到响应中
    response.addCookie(cookie);
    2.浏览器发送cookie到服务器,如何取
    1>获得所有浏览器发送的cookie
    Cookie[] cookies = request.getCookies();
    2>遍历并判断我们要找的cookie
    if(cookies!=null && cookies.length>0){
      for(Cookie c : cookies){
        if(c.getName().equals("name")){
        System.out.println("获得的cookie:"+c.getName()+":"+c.getValue());
        }
      }
    }

    cookie原理.
    让浏览器记住键值对.是向响应头中添加一下头即可:
    set-Cookie:name=tom;
    浏览器记住之后,向服务器发送键值对,是在请求头中添加下面的信息:
    Cookie: name=tom;

    cookie细节问题:
    1.浏览器记多久?
    默认是在会话期间有效.(关闭浏览器,cookie就被删除).(有效时间-1)
    2.有效时间如何设置?
    //设置cookie的最大有效时间
    1>设置一个正数,标示最大有效时间.单位是秒
    //cookie.setMaxAge(60*60);
    2>设置为-1 , 就是相当于默认有效时间, 浏览器关闭就消失.
    //cookie.setMaxAge(-1);
    3> 标示cookie的有效时间为0.发送到浏览器就消失了.
    //利用有效时间为0 这件事,我们可以做删除cookie的操作.
    // 因为同一个路径 ,不能存在相同的cookie(键相同).
    // 我们可以通过覆盖的方式,设置有效时间为0. 删除cookie
    cookie.setMaxAge(0);

    3.浏览器在什么情况下发送cookie(路径)
    cookie的默认路径就是发送cookie的servlet所在目录.
    /Day09-cookie
    /Day09-cookie/abc/xxxServlet
    访问路径如果是cookie路径的子路径那么,浏览器就会把该cookie告诉服务器.
    4.cookie中的域 (了解)
    想要以下三个 主机和主机下的项目能共享一个cookie.
    www.baidu.com
    music.baidu.com
    map.baidu.com
    完成两步即可:
    1.设置cookie的域为 ".baidu.com"
    2.设置cookie路径 为: "/"
    以上就是跨主机访问cookie.不常用.

  • 相关阅读:
    java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Context
    hutool.poi使用,hutool导入
    Switch Off Offline Mode
    大数据-linux之大数据-shell变量
    大数据-linux之大数据-shell编程
    大数据-linux之java环境搭建-mysql的安装
    大数据-linux之java环境搭建-eclipse的下载安装
    大数据-linux之javaee环境搭建-tomcat的安装
    大数据-linux搭建javaee的开发环境-jdk的安装
    大数据-linux实操篇-RPM包管理
  • 原文地址:https://www.cnblogs.com/nuoyinsomnus/p/7880422.html
Copyright © 2020-2023  润新知