zoukankan      html  css  js  c++  java
  • Cookie

    一、会话控制

      >Http协议

          Http协议两个缺陷:

            1.HTTP协议是纯文本的

            2.HTTP协议是无状态的

        服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户

        虽然通过HTTP协议不能区分不同请求是否来同一用户,但是我们实际生活却有这样的需求。

      [1] Cookie

        > 看电影

          - 去电影院看电影时,检票人员是认票不认人。

          - 电影院的运作流程

        1.印刷电影票

        2.将票发给看电影

        3.看电影的拿着票来看电影

        4.检票

    二、 简介

        - 我们想可以通过服务器向浏览器发送一个类似票的东西,

        浏览器在访问服务器时就可以拿着票来访问

        服务器就可以根据这个票来识别不同的用户。


      - 服务器发送给浏览器的这张票我们称为Cookie。

      1、 Cookie的使用流程:

          1.服务器先要创建Cookie

          2.将Cookie发送给浏览器

          3.浏览器带着Cookie访问服务器

          4.服务器检查浏览器的Cookie

        - Cookie实际上就是一个头

          服务器通过响应头将Cookie发送给浏览器,

          浏览器通过请求头将Cookie发回给服务器,

          服务器可以根据不同的Cookie来识别不同的用户。

      2、 使用Cookie

          - 创建Cookie

            Cookie cookie = new Cookie(name,value);

          - 发送Cookie

            response.addCookie(cookie);

        注意:可以发送多个cookie!

          - 读取Cookie

            request.getCookies(); 返回的是一个Cookie数组。

            - 虽然Cookie是一个键值对结构,但是它并没有给咱们提供一个根据键获取值的方法。

            我们要想读取Cookie的信息,只能通过遍历数组。

          - 修改Cookie

            一旦Cookie发给浏览器以后,服务器便不能直接修改Cookie,

            但是可以通过使用同名Cookie来替换的老Cookie方式来间接的修改

      3、 Cookie的有效时间

          - Cookie的默认有效时间为一次会话,当关闭浏览器时,Cookie将失效。

          - 通过setMaxAge(秒数)来设置Cookie的有效时间

            -//当秒数大于0时,有效时间会设置为相应的秒数

              cookie.setMaxAge(30);

            //当秒数等于0时,代表Cookie立即失效,浏览器不会保存。
              cookie.setMaxAge(0);

            //当秒数小于0时,和不设置是一样,一次会话中有效
              cookie.setMaxAge(-100);

            - 设置一个长久有效的Cookie

              cookie.setMaxAge(60*60*24*365*10)

      4、 在程序中使Cookie立即失效

          - 可以使用一个同名的,立即失效的Cookie来替换已有Cookie

             -cookie.setMaxAge(0); ,设置cookie有效时间秒数等于0,代表Cookie立即失效

      注意:不建议在cookie中传递中文,会用base64编码!


      5、 Cookie的Path

          - path指的Cookie的路径

          - 所谓的Cookie路径就是指,浏览器在访问哪些地址时会携带Cookie。

          - Cookie默认有效路径是项目的根目录,只要访问当前项目下的资源就会带着Cookie

          - 通过setPath()方法来设置Cookie有效路径

        //修改Cookie的有效路径

          //Cookie的路径由浏览器解析,所以设置路径时需要加上项目名

            cookie.setPath(request.getContextPath()+"/hello");


      6、 应用:

        1.可以用来保持用户的登录状态

        2.可以用来记录用户上次输入的用户名

        3.广告的推送

      > Cookie练习

        > 模拟一个taobao的功能,保存用户输入用户名。

        > 用户在login.jsp输入用户名和密码

        > 请求发送个LoginServlet

        > LoginServlet收到请求行,检查用户名和密码是否正确。(默认登录成功)

        如果正确,则将用户名保存到一个Cookie中,并发送给浏览器 ,重定向到login-success.jsp

        如果错误,转发到login.jsp


  • 相关阅读:
    输入挂
    最长递增子序列nlogn的做法
    lca 倍增模版
    讨厌字符串
    js的事件处理与闭包:
    http
    html的语义化
    js性能优化
    js的缓存
    字面量声明和函数式声明
  • 原文地址:https://www.cnblogs.com/java-zmj/p/7919278.html
Copyright © 2011-2022 走看看