Cooke技术

1,特点

  Cookie技术:会话数据保存在浏览器客户端。

2,Cookie技术核心

  Cookie类:用于存储会话数据

   1)构造Cookie对象

    Cookie(java.lang.String name, java.lang.String value)

   2)设置cookie

    void setPath(java.lang.String uri)   :设置cookie的有效访问路径

    void setMaxAge(int expiry) : 设置cookie的有效时间

    void setValue(java.lang.String newValue) :设置cookie的值

  3)发送cookie到浏览器端保存

    void response.addCookie(Cookie cookie)  : 发送cookie

  4)服务器接收cookie

    Cookie[] request.getCookies()  : 接收cookie

3,Cookie原理

  1)服务器创建cookie对象,把会话数据存储到cookie对象中。

    new Cookie("name","value");

  2)   服务器发送cookie信息到浏览器

    response.addCookie(cookie);

      举例: set-cookie: name=eric  (隐藏发送了一个set-cookie名称的响应头)

  3)浏览器得到服务器发送的cookie,然后保存在浏览器端。

  4)浏览器在下次访问服务器时,会带着cookie信息

    举例: cookie: name=eric  (隐藏带着一个叫cookie名称的请求头)

  5)服务器接收到浏览器带来的cookie信息

    request.getCookies();

4,Cookie的细节

  1)void setPath(java.lang.String uri)   :设置cookie的有效访问路径。有效路径指的是cookie的有效路径保存在哪里,那么浏览器在有效路径下访问服务器时就会带着cookie信息,否则不带cookie信息。

  2)void setMaxAge(int expiry) : 设置cookie的有效时间。

    正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。

    负整数:表示cookie数据保存浏览器的内存中。浏览器关闭cookie就丢失了!!

    零:表示删除同名的cookie数据

  3)Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。

Cookie的局限:

  1)Cookie只能存字符串类型。不能保存对象

  2)只能存非中文。

  3)1个Cookie的容量不超过4KB。

代码使用:

	private static int k = 10;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
System.out.println("(cookie)"+ cookie.getName() + ":" + cookie.getValue());
} System.out.println(request.getParameter("userName")); Cookie cookie1 = new Cookie("loginTime", "" + (k++));
Cookie cookie2 = new Cookie("name", "xiaoMing"); cookie1.setPath("/Project");
cookie2.setPath("/Project"); cookie1.setMaxAge(-1);
cookie2.setMaxAge(-1); response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
response.addCookie(cookie1);
response.addCookie(cookie2);
}

网页调用

访问网址:

  http://localhost:8080/Project/cookieTest?userName=zhangsan

浏览器端结果,多次访问

MyEclipse的console打印结果

信息: Server startup in 766 ms
(cookie)loginTime:1
(cookie)name:xiaoMing
zhangsan
(cookie)loginTime:10
(cookie)name:xiaoMing
zhangsan
(cookie)loginTime:11
(cookie)name:xiaoMing
zhangsan
(cookie)loginTime:12
(cookie)name:xiaoMing
zhangsan
(cookie)loginTime:13
(cookie)name:xiaoMing
zhangsan
(cookie)loginTime:14
(cookie)name:xiaoMing
zhangsan
(cookie)loginTime:15
(cookie)name:xiaoMing
zhangsan

  

(17)会话之Cookie的使用详解的更多相关文章

  1. 会话技术cookie和session详解

    什么是会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话技术解决了什么问题 每个用户与服务器进行交互的过程中,各自会有一 ...

  2. 【转】Cookie/Session机制详解

    Cookie/Session机制详解   会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息 ...

  3. cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  4. Chrome的cookie放在哪里了,Cookie/Session机制详解

    Chrome的cookie放在哪里了,Cookie/Session机制详解:https://blog.csdn.net/u010002184/article/details/82082951

  5. Cookie与Session详解

    来源:<PHP核心技术与最佳实践> 列旭松 陈文 著 Cookie与Session详解读书笔记,从概念.操作.应用.注意事项以及区别等几方面详细阐述两者的基础知识,它们都是针对HTTP协议 ...

  6. nginx通过域名访问项目(不接项目名称),cookie丢失问题详解

    最近搞了个域名,想用它直接去访问Tomcat上部署的项目,开始一直必须加上项目名称,经过短暂配置,成功了. 访问一次,到达登陆页面,结果死活登录不进去,一直在登陆界面,原来是由于cookie丢失,现配 ...

  7. 会话技术——Cookies和Session详解

    会话技术 (一) 概述.用途以及分类 (1) 基本概述 概述:会话是浏览器和服务器之间的多次请求和响应 也就是说,从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止的这段时间内容产生的多次请求和 ...

  8. Java Web(三) 会话机制,Cookie和Session详解

    很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...

  9. Java Web(三) 会话机制,Cookie和Session详解(转载)

    https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因 ...

随机推荐

  1. SpringMVC中controller的跳转

    controller中的重定向 (1)不需要传递参数重定向 方式一:使用ModelAndView        return new ModelAndView("redirect:/toLi ...

  2. github私有库购买信息

    github私有库购买信息      一年84美元. 换算成人民币是:532元.   话说其他开发者都买了么?    

  3. 大数据学习——点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上

    点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上 1需求说明 点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上 2需求分 ...

  4. INFO main org.springframework.context.support.AbstractApplicationContext

    原因, spring-framework-5.0.2.RELEASE  需要使用 jdk8.

  5. NYOJ-481平衡字符串

    平衡字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 给你一定长度的字符串.字符串中只包含26个小写字母,首先我们把字母a-z分为2堆(a--m)和(n--z),判 ...

  6. git学习(一)----基础知识

    git是世界上最好用最先进的版本管理系统,那么什么是版本管理系统呢,百度上是这样说的: 举个例子,当你写毕业论文的时候,灵感爆发了修改或者删除了一些内容,但是你还想保留之前的版本,就需要另存为不同的w ...

  7. POJ 3615 Cow Hurdles

    http://poj.org/problem?id=3615 floyd 最短路径的变形 dist[i][j]变化为 : i j之间的最大边 那么输入的时候可以直接把dist[i][j] 当作i j ...

  8. 51nod1184 第N个质数

    如题.$n \leq 1e9$. 方法零:二分,然后洲阁筛.要魔改一下的洲阁筛.跑得慢.卡卡能过.没意思. //#include<iostream> #include<cstring ...

  9. 大数c++模板 超级好用

    只用输入用cin 输出  cout  每个数学符号都可以用   超级强大 #include <iostream> #include <queue> #include <c ...

  10. Best Time to Buy and Sell Stock(动态规划)

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...