Servlet:Cookie

转载 2015年11月19日 15:01:11
1. Http协议与Cookie
  * Cookie是HTTP协议制定的!先由服务器保存Cookie到浏览器,再下次浏览器请求服务器时把上一次请求得到Cookie再归还给服务器
  * 由服务器创建保存到客户端浏览器的一个键值对!服务器保存Cookie的响应头:Set-Cookie: aaa=AAA  Set-Cookie: bbb=BBB
    > response.addHeader("Set-Cookie", "aaa=AAA");response.addHeader("Set-Cookie", "bbb=BBB");
  * 当浏览器请求服务器时,会把该服务器保存的Cookie随请求发送给服务器。浏览器归还Cookie的请求头:Cookie: aaa=AAA; bbb=BBB
  * Http协议规定(保证不给浏览器太大压力):
    > 1个Cookie最大4KB
    > 1个服务器最多向1个浏览器保存20个Cookie
    > 1个浏览器最多可以保存300个Cookie
  * 浏览器大战:因为浏览器竞争很激励,所以很多浏览器都会在一定范围内违反HTTP规定,但也不会让一个Cookie为4GB!

2. Cookie的用途
  * 服务器使用Cookie来跟踪客户端状态!session
  * 保存购物车(购物车中的商品不能使用request保存,因为它是一个用户向服务器发送的多个请求信息)
  * 显示上次登录名(也是一个用户多个请求)

  **********Cookie是不能跨浏览器的!***********他的保存当然也是由程序(浏览器)保存,浏览器之间是没啥关系的


3. JavaWeb中使用Cookie
  * 原始方式(了解):
    > 使用response发送Set-Cookie响应头
    > 使用request获取Cookie请求头
  * 便捷方式(精通):
    > 使用repsonse.addCookie()方法向浏览器保存Cookie
    > 使用request.getCookies()方法获取浏览器归还的Cookie

  Cookie第一例:
    > 一个jsp保存cookie, a.jsp
    > 另一个jsp获取浏览器归还的cookie! b.jsp

4. Cookie详解
  * Cookie不只有name和value两个属性
  * Cookie的maxAge(掌握):Cookie的最大生命,即Cookie可保存的最大时长。以秒为单位,例如:cookie.setMaxAge(60)表示这个Cookie会被浏览器保存到硬盘上60秒
    > maxAge>0:浏览器会把Cookie保存到客户机硬盘上,有效时长为maxAge的值决定。
    > maxAge<0:Cookie只在浏览器内存中存在,当用户关闭浏览器时,浏览器进程结束,同时Cookie也就死亡了。
    > maxAge=0:浏览器会马上删除这个Cookie!根据名字
  * Cookie的path(理解):
    > Cookie的path并不是设置这个Cookie在客户端的保存路径!!!
    > Cookie的path由服务器创建Cookie时设置
    > 当浏览器访问服务器某个路径时,需要归还哪些Cookie给服务器呢?这由Cookie的path决定。
    > 浏览器访问服务器的路径,如果包含某个Cookie的路径,那么就会归还这个Cookie。

    > 例如:
      <> aCookie.path=/day11_1/; bCookie.path=/day11_1/jsps/; cCookie.path=/day11_1/jsps/cookie/;
      <> 访问:/day11_1/index.jsp时,归还:aCookie
      <> 访问:/day11_1/jsps/a.jsp时,归还:aCookie、bCookie
      <> 访问:/day11_1/jsps/cookie/b.jsp时,归还:aCookie、bCookie、cCookie
    > Cookie的path默认值:当前访问路径的父路径。例如在访问/day11_1/jsps/a.jsp时,响应的cookie,那么这个cookie的默认path为/day11_1/jsps/
  * Cookie的domain(了解)
    > domain用来指定Cookie的域名!当多个二级域中共享Cookie时才有用。
    > 例如;www.baidu.com、zhidao.baidu.com、news.baidu.com、tieba.baidu.com之间共享Cookie时可以使用domain
    > 设置domain为:cookie.setDomain(".baidu.com");
    > 设置path为:cookie.setPath("/");跟项目名没关系


Cookie中不能存在中文!!!

// 保存
Cookie c = new Cookie("username", URLEncoder.encode("张三", "utf-8"));//出错!
response.addCookie(c);

// 获取
Cookie[] cs = request.getCookies();
if(cs != null) {
  for(Cookie c : cs){
    if("username".equals(c.getName())) {
      String username = c.getValue();
      username = URLDecoder.decode(username, "utf-8");
    }
  }
}

Servlet 清除Cookie 方法

 一、删除已知名称的Cookie(方案:重新建立同名立即删除类型的Cookie) Cookie newCookie=new Cookie(“username”,null); //假如要删除...
  • zhouzhiwengang
  • zhouzhiwengang
  • 2014年02月27日 14:07
  • 1625

Servlet的Cookie与Seesion的介绍

什么是Cookie? Cookie是服务器在本地机器上存储的小段文本,它是一个简单的字符串形式的键值对。 网络服务器用HTTP头向客户端发送cookie, (一般情况下Cookie是由服务端生成的,...
  • qq_33642117
  • qq_33642117
  • 2016年07月07日 21:44
  • 535

Java Servlet学习笔记(六)Servlet Cookies处理

Servlet Cookies 处理 Cookies 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。Java Servlet 显然支持 HTTP Cookies。 识别返回用户包括三...
  • chris_mao
  • chris_mao
  • 2015年05月28日 22:37
  • 3598

利用servlet创建Cookie

1。什么是 Cookie?Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。假设在用户请...
  • wwwwsoe
  • wwwwsoe
  • 2007年06月02日 12:51
  • 3743

Servlet——Cookie 和 Session

一、会话           会话可简单的理解为:用户的打开一个浏览器,点击多个超链接访问 Web 服务器中的多个资源,然后关闭浏览器的过程,称为会话。               1、服...
  • u010940949
  • u010940949
  • 2013年12月25日 09:09
  • 1399

Servlet之cookie和session简介及其作用

一、cookie和session简介1.浏览器和服务器是多对一的关系2.业务:登录时记录账号,后续的页面上显示此账号3.使用如下对象存储账号都不行 request:多个请求之间共用账号,不能用requ...
  • qq_27853161
  • qq_27853161
  • 2016年12月21日 17:20
  • 391

Servlet-Cookie的使用与删除

1、Cookie的使用/** * @author CSDN_LQR * @TODO * * 一、 Cookie默认是会话级Cookie,即当浏览器关闭时自动删除 * * ...
  • CSDN_LQR
  • CSDN_LQR
  • 2016年10月16日 16:57
  • 2083

Servlet实现Cookie的创建,读取,删除

(1)如何创建cookie案例 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public clas...
  • u010870518
  • u010870518
  • 2014年08月31日 15:25
  • 6815

Servlet中Cookie增、删、改、查

Blog:http://muchstudy.com  整理了一个在Servlet中对Cookie增删改查的工具类,首先要注意的是在服务器端是无法对Cookie做修改的,只能做到覆盖创建。引用Stack...
  • yzf913214
  • yzf913214
  • 2016年11月19日 20:00
  • 882

Servlet中不可不知的Cookie技术

目录目录 前言 Servlet中的Cookie Cookie重要知识点 通过Cookie技术显示用户上次访问时间 使用Cookie技术实现记录用户浏览过的商品 显示商品列表和浏览过的商品 查看商品详情...
  • qq_15096707
  • qq_15096707
  • 2017年05月01日 22:25
  • 459
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Servlet:Cookie
举报原因:
原因补充:

(最多只允许输入30个字)