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. shell实现ftp命令示例

    一.shell脚本示例: [plain] view plaincopy cd /PATH_YOU_WANT_TO_UPLOAD(DOWNLOAD) ftp -niv <<- EOF ope ...

  2. Leetcode 306.累加数

    累加数 累加数是一个字符串,组成它的数字可以形成累加序列. 一个有效的累加序列必须至少包含 3 个数.除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和. 给定一个只包含数字 '0'- ...

  3. Codeforces Round #211 (Div. 2)-D. Renting Bikes,二分!感谢队友出思路!

    D. Renting Bikes 读懂题后一开始和队友都以为是贪心.可是贪心又怎么贪呢..我们无法确定到底能买多少车但肯定是最便宜的前x辆.除了公共预算每个人的钱只能自己用,也无法确定每个人买哪一辆车 ...

  4. centos 7 下vnc弹出窗口太小解决方法

    使用以下参数启动 : vncserver :2 -geometry 800x600

  5. [HDU5919]Sequence II

    [HDU5919]Sequence II 试题描述 Mr. Frog has an integer sequence of length n, which can be denoted as a1,a ...

  6. ascii 和 byte以及UTF-8的转码规则

    多年来闲麻烦,只记录笔记,不曾编写BLOG,本文为原创,如需转载请标明出处 废话不说,直奔主题 ascii     计算机只接受 “高”.“低”电压,所以使用二进制  1  和  0 分别代表高低电压 ...

  7. linux日志服务器审计客户端history记录

    https://blog.csdn.net/yanggd1987/article/details/70255179

  8. SSM!这就是你要的条条框框!

    第一次写博 1.导jar包 2,.表和实体类 实体类:com.bao.entity[Student] private int stuNo; private String stuName; privat ...

  9. File类 判断功能和获取功能

    package cn.zmh.File; import java.io.File; /* * * File判断功能 * * */ public class FileDemo3判断功能 { public ...

  10. java 数组 输入5名学生的成绩 得出平均分。

    import java.util.Scanner; public class LianXi4{ public static void main(String[] args){ //创建长度为5的数组 ...