时间:2016-11-17 22:32

——Cookie

服务器保存到客户端的东西。

一、Http协议与Cookie
    1、Cookie是HTTP协议制定的
        先由服务器保存Cookie到浏览器,在浏览器下一次请求服务器时把上一次请求得到的Cookie再发送给浏览器。

2、由服务器创建并保存到客户端浏览器的一个键值对
        服务器保存Cookie的响应头:Set-Cookie:aaa=AAA    Set-Cookie:bbb=BBB

3、当浏览器请求服务器时,会把该服务器保存的Cookie随着请求发送给服务器

4、浏览器归还Cookie的请求头
        Cookie:aaa=AAA; bbb=BBB
        归还Cookie:就是浏览器访问服务器的同时提交Cookie。

5、HTTP协议规定(为了不给浏览器太大压力)
        *   一个Cookie最大4KB
        *   一个服务器最多向一个浏览器保存20个Cookie
        *   一个浏览器最多可以保存300个Cookie

浏览器大战:因为浏览器竞争很激烈,所以很多浏览器都会在一定范围内违反HTTP协议,但是不会超过太多。

二、Cookie的用途
    1、服务器使用Cookie来跟踪客户端状态。
    2、保存购物车(购物车中的商品不能使用request保存,因为它是一个用户向服务器发送的多个请求信息)
    3、显示上次登陆名(也是一个用户多个请求)
    4、Cookie不能跨浏览器使用。

三、JavaWeb中使用Cookie
    1、原始方式
        *   使用response发送Set-Cookie响应头。
        *   使用request获取Cookie请求头。
    2、便捷方式
        *   使用response.addCookie()方法向浏览器保存Cookie。
        *   使用request.getCookies()方法获取浏览器归还的Cookie,如果没有Cookie,则返回null。

四、Cookie第一例
    1、一个JSP保存cookie(a.jsp)
        <%

Cookie cookie1 = new Cookie("aaa","AAA");
response.addCookie(cookie1);
Cookie cookie2 = new Cookie("bbb","BBB");
response.addCookie(cookie2);    //这个方法其实就是设置Cookie头(Set-Cookie)
%>
 

response会返回Cookie信息:

2、另一个JSP获取浏览器归还的cookie(b.jsp)
        <%
            Cookie[] cookies = request.getCookies();    //返回Cookie的数组

if(cookies != null)
{
for(Cookie c : cookies)
{
out.println(c.getName() + "=" + c.getValue() + "<br/>");
}
}
        %>  

request会将硬盘上的Cookie信息带到服务器:

五、Cookie详解
    1、Cookie不只有name和value两个属性。

2、Cookie的maxAge:
        *   Cookie可以保存在浏览器内存,也可以保存在硬盘。
        *   如果没设置maxAge,那就默认保存在浏览器内存中。
        *   Cookie的最大生命,即Cookie可保存的最大时长,以秒为单位,例如:cookie.setMaxAge(60),表示这个Cookie会被保存到硬盘60秒。
        *   maxAge>0:浏览器会把Cookie保存到客户机硬盘上,有效时长为maxAge的值决定。
        *   maxAge<0:Cookie只会在浏览器内存中存在,当用户关闭浏览器时,浏览器进程结束,同时Cookie也就消失了。
        *   maxAge=0:浏览器会马上删除这个Cookie。(内存和硬盘都不保存)
 
        

3、Cookie的path:
        *   Cookie的path并不是设置这个Cookie在客户端的保存路径。
        *   Cookie的path由服务器创建Cookie时设置。
        *   当浏览器访问服务器某个路径时,需要归还那些Cookie给服务器呢?这个由Cookie的path决定。
        *   Cookie所在Servlet的路径就是Cookie所在文件的路径。
        *   浏览器访问服务器的路径,如果包含某个Cookie路径,那么就会归还这个Cookie。

例如:
            aCookie.path=/day11_1/; bCookie.path=/day11_1/jsps/;  cCookie.path=/day11_1/jsps/cookie/;
            1)访问:/day11_1/index.jsp时,归还:aCookie
            2)访问:/day11_1/jsps/a.jsp时,归还:aCookie、bCookie
            3)访问:/day11_1/jsps/cookie/b.jsp时,归还:aCookie、bCookie、cCookie

Cookie的path默认值:
            当前访问路径的父路径。
            例如在访问/day11_1/jsps/a.jsp时,响应的cookie,那么这个cookie的默认path为day11_1/jsps/

4、Cookie的domain
        *   domain用来指定Cookie的域名,当多个二级域中共享Cookie时才有用。
        *   需要配置虚拟主机。
        *   例如:www.baidu.com、zhidao.baidu.com、news.baidu.com、tieba.baidu.com之间共享Cookie时可以使用domain。
        *   设置domain为:cookie.setDomain(".baidu.com");
            //只要是以.baidu.com为后缀的,都可以访问cookie。
        *   设置path为:cookie.setPath("/");
            cookie路径必须是斜线,不能写项目名,一旦写上项目名,则固定为某个项目所使用。

转载于:https://www.cnblogs.com/wwwwyc/p/6375284.html

JavaWeb之Cookie相关推荐

  1. JavaWeb利用cookie记住账号

    JavaWeb利用cookie记住账号. 首先,来看看界面什么样子. 记住账号最普遍的做法,就是在点击登录时,将账号保存到cookie中. 材料准备 <script src="${ct ...

  2. 【JavaWeb】Cookie的基本使用、原理分析、使用细节

    [JavaWeb]Cookie的基本使用.原理分析.使用细节 一.Cookie的基本使用 对于Cookie的使用,我们更关注的应该是后台代码如何操作Cookie,对于Cookie的操作主要分两大类,本 ...

  3. JavaWeb学习----Cookie实现记住密码的功能

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. JavaWeb(七)——Cookie、Session

    文章目录 1. 会话 2. 保存会话的两种技术 3. Cookie 4. Session(重点) 1. 会话 会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称 ...

  5. JavaWeb之Cookie,Session

    目录 一.Cookie 1.1概念 1.2快速入门 1.3Cookie细节 1.3.1 一次可不可以发送多个cookie? 1.3.2 cookie在浏览器中保存多长时间? 1.3.3 cookie能 ...

  6. javaWeb之Cookie和Session

    会话技术 在了解cookie和session之前,需要先了解一个概念:会话 1. 概念 在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话.web应用中的会话过程类似于生活中的 ...

  7. JavaWeb 之 Cookie详解

    1.简单理解Cookie Cookie就是网站在本地终端上的存缓数据.有些网站会保存你的一些信息,如用户名.密码.上次登录时间--这种技术出现的需求主要是http协议的特点--无状态性 ,每次用户请求 ...

  8. javaweb入门笔记(5)-cookie和session

    2019独角兽企业重金招聘Python工程师标准>>> javaweb入门笔记(5)-cookie和session 标签: javaweb [TOC] Cookie是客户端技术:Se ...

  9. javaweb(10) cookiesession

    javaweb(10) cookie&session cookie 什么是cookie 1.Cookie 翻译过来是饼干的意思. 2.Cookie 是服务器通知客户端保存键值对的一种技术. 3 ...

最新文章

  1. 数据产品必知的4层技术知识
  2. JAVA常见异常种类
  3. linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统
  4. eclipse python插件_pydev插件下载-eclipse中的python插件下载6.0.0 官网最新版-西西软件下载...
  5. Java中number数字类型的转换_Java下数字类型的转换 (转)
  6. 手机站的view.php,织梦网站文章内容页动态地址plus/view.php路径修改
  7. Linux与Windows共享文件夹之samba的安装与使用 资源管理器直接查看服务器文件
  8. linux 程序占内存,linux下,一个运行中的程序,究竟占用了多少内存
  9. JS中的内置对象 --- Math、Date、Array、String
  10. quadprog函数的介绍和应用,二次规划函数
  11. 小程序获取用户地址信息api
  12. 记录‘launch_simulation‘failed due to earlier errors的一个解决方法
  13. html设计网页板块,网页设计
  14. win7下装ubuntu双系统
  15. Python基础学习九 单元测试
  16. 一些linux牛皮糖
  17. 竖流式沉淀池集水槽设计计算_竖流沉淀池设计计算书.doc
  18. python---面向对象实例(烤地瓜、搬家具)
  19. Unity3D C#数学系列之矩阵基础
  20. bootstrap组件--笔记(2)

热门文章

  1. centos6.5下postgresql9.4.3安装与配置
  2. openfire+elipse的导入配置
  3. Kubernetes学习笔记之Calico CNI Plugin源码解析(二)
  4. Linux select 一网打尽
  5. RandomAccessFile类的简单介绍,以及代码演示
  6. spark broadcast的TorrentBroadcast实现
  7. Tomcat 通用组件
  8. 容器弹性云底层原理揭秘
  9. centos上安装和配置tomcat
  10. ubantu Wine QQ