博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cookie基本介绍
阅读量:6226 次
发布时间:2019-06-21

本文共 2392 字,大约阅读时间需要 7 分钟。

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");    //创建Cookie25         cookie.setMaxAge(60*3);              //设置Cookie的有效时间26         response.addCookie(cookie);            //发送Cookie  27         Cookie[] cookies = request.getCookies();     //读取Cookie28         if(cookies!=null){29             for(int i=0;i

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

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

转载于:https://www.cnblogs.com/double-s/p/8120687.html

你可能感兴趣的文章
Spring:ApplicationContext (2)
查看>>
数据记录筛选
查看>>
windows 10专业版14393.447 64位纯净无广告版系统 基于官方稳定版1607制作 更新于20161112...
查看>>
Python正则表达式学习摘要及资料
查看>>
C++项目中的extern "C" {}
查看>>
Oozie分布式任务的工作流——脚本篇
查看>>
python的分布式爬虫框架
查看>>
Unity3D研究院之使用Animation编辑器编辑动画
查看>>
编译时常量与运行时常量
查看>>
深究JS异步编程模型
查看>>
深度学习常见算法之训练自己的数据
查看>>
Visual Studio2015使用tinyfox2.x作为Owin Host调试教程
查看>>
中国的支付清算体系是怎么玩的?
查看>>
[工具] 全文检索工具推荐
查看>>
java取整和java四舍五入方法 BigDecimal.setScale()方法详解
查看>>
Spring boot中使用springfox来生成Swagger Specification小结
查看>>
python 01
查看>>
【Network】修改docker启动默认网桥docker0为自定义网桥
查看>>
MySQL分支的选择:Percona还是MariaDB
查看>>
算法笔记_013:汉诺塔问题(Java递归法和非递归法)
查看>>