zoukankan      html  css  js  c++  java
  • Cookie基本介绍

    1.Http协议

            Http协议两个缺陷:
                1.HTTP协议是纯文本的
                2.HTTP协议是无状态的
                    服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户
                虽然通过HTTP协议不能区分不同请求是否来同一用户,但是我们实际生活却有这样的需求。

    2. Cookie
             简介:
      (1)我们想可以通过服务器向浏览器发送一个类似票的东西,
                        浏览器在访问服务器时就可以拿着票来访问
                            服务器就可以根据这个票来识别不同的用户。
      (2)服务器发送给浏览器的这张票我们称为Cookie。
      (3)Cookie的使用流程:
                  ①.服务器先要创建Cookie
                  ②.将Cookie发送给浏览器
                ③.浏览器带着Cookie访问服务器
                   ④.服务器检查浏览器的Cookie
       (4)Cookie实际上就是一个头
                    服务器通过响应头将Cookie发送给浏览器,
                        浏览器通过请求头将Cookie发回给服务器,
                            服务器可以根据不同的Cookie来识别不同的用户。
       (5)使用Cookie
                ① 创建Cookie
                    Cookie cookie = new Cookie(name,value);
                    
                ② 发送Cookie    
                    response.addCookie(cookie);
                    注意:可以发送多个cookie!
                    
                ③ 读取Cookie
                    request.getCookies(); 返回的是一个Cookie数组。
                    - 虽然Cookie是一个键值对结构,但是它并没有给咱们提供一个根据键获取值的方法。
                        我们要想读取Cookie的信息,只能通过遍历数组。
                
                ④ 修改Cookie
                    一旦Cookie发给浏览器以后,服务器便不能直接修改Cookie,
                        但是可以通过使用同名Cookie来替换的老Cookie方式来间接的修改
                
       (6) 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)


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

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

     1 package com.neuedu.cookie;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.ServletException;
     6 import javax.servlet.http.Cookie;
     7 import javax.servlet.http.HttpServlet;
     8 import javax.servlet.http.HttpServletRequest;
     9 import javax.servlet.http.HttpServletResponse;
    10 
    11 
    12 public class CookieServlet extends HttpServlet {
    13     private static final long serialVersionUID = 1L;
    14        
    15  
    16     public CookieServlet() {
    17         super();
    18        
    19     }
    20 
    21 
    22     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    23 
    24         Cookie cookie=new Cookie("gender", "male");    //创建Cookie
    25         cookie.setMaxAge(60*3);              //设置Cookie的有效时间
    26         response.addCookie(cookie);            //发送Cookie  
    27         Cookie[] cookies = request.getCookies();     //读取Cookie
    28         if(cookies!=null){
    29             for(int i=0;i<cookies.length;i++){
    30                 if("gender".equals(cookies[i].getName())){
    31                     cookies[i].setValue("female");  //修改cookie信息
    32                     response.addCookie(cookies[i]);
    33                 }
    34             }
    35         }
    36         
    37         
    38     }
    39 
    40     
    41     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    42         doGet(request, response);
    43     }
    44 
    45 }

    通过火狐浏览器查看Cookie信息


      (7) Cookie的Path
               path指的Cookie的路径
               所谓的Cookie路径就是指,浏览器在访问哪些地址时会携带Cookie。
                ①Cookie默认有效路径是项目的根目录,只要访问当前项目下的资源就会带着Cookie
                ②通过setPath()方法来设置Cookie有效路径
                ③修改Cookie的有效路径
                //Cookie的路径由浏览器解析,所以设置路径时需要加上项目名
                cookie.setPath(request.getContextPath()+"/hello");
            
       (8)Cookie 应用:
                1.可以用来保持用户的登录状态
                2.可以用来记录用户上次输入的用户名
                3.广告的推送

  • 相关阅读:
    javascript中数组去重的4种方法
    dede使用方法----实现英文版的搜索功能
    dede去掉当前位置position后面的箭头
    dede使用方法----如何转换时间戳
    Python字符串、元组、列表、字典互相转换的方法
    Python 列表的操作
    Python 元祖的操作
    Python 操作文件、文件夹、目录大全
    python文件目录操作大全
    python用time函数计算程序运行时间
  • 原文地址:https://www.cnblogs.com/double-s/p/8120687.html
Copyright © 2011-2022 走看看