设定cookie 过期时间:

Cookie coke = new Cookie("name", "pattern");

coke.setMaxAge(60);//s
        response.addCookie(coke);

对于cookie的操作
            设置:
            Cookie cookie = new Cookie("key","value"); 创建一个cookie
            cookie.setMaxAge();   设置cookie的有效时间
            cookie.setPath(uri);  设置cookie的路径
            cookie.setDomain(".baidu.com");设置cookie的域(了解)
            response.addCookie(cookie); 把cookie添加到响应中,这样才能发送给浏览器.可以添加多个cookie. (IE6.0一个网站只能记30个cookie,ie最多记录300个cookie.(但是发展到现在版本.数量提升了,具体没试过.Chrom3000个cookie))
            浏览器发过来,取出cookie:
            request.getCookies();   
    cookie的详情:
        服务器使用 set-Cookie响应头 让浏览器记住一个数据(键值对)  响应头: Set-Cookie: name=tom
        浏览器用Cookie请求头,告诉服务器一个键值对.                请求头:Cookie: name=tom

记录浏览历史:

// Cookie c = new Cookie("History");
Cookie[] cookieArray = request.getCookies(); String strs = request.getParameter("name"); Cookie temp = null;
if (cookieArray != null && cookieArray.length > 0) {
for (Cookie c : cookieArray) {
if (c.getName().equalsIgnoreCase("history")) {
temp = c;
break;
}
}
}
if (temp != null) {
String temps = (String) temp.getValue(); if (!temp.getValue().contains(strs)) {
temps += "," + strs;
}
Cookie newCookie = new Cookie("history", temps);
response.addCookie(newCookie);
request.setAttribute("history", temps);
} else {
Cookie newCookie = new Cookie("history", strs);
response.addCookie(newCookie);
} request.getRequestDispatcher("/index2.jsp").forward(request, response);
Cookie coke = new Cookie("history", "");
coke.setMaxAge(0);
response.addCookie(coke);
request.getRequestDispatcher("/index2.jsp").forward(request, response);
<a href="/day11_jsp/CServlet?name=dell">Dell</a>
<br />
<a href="/day11_jsp/CServlet?name=Lenovo">lenovo</a>
<br />
<a href="/day11_jsp/CServlet?name=acer">Acer</a>
<br />
<%
String strs = (String) request.getAttribute("history");
%>
您浏览的历史是:<%=strs%><br/>
<a href="/day11_jsp/DServlet">删除Cookie</a>

例子:
        1.显示上次访问时间

2.记录浏览历史.

Cookie细节

1.记多久

使用cookie.setMaxAge(int) ==> 该方法设置cookie有效时间

填写方法:

1.填写正数 --> 数字相当于秒 ==> 60 ==> 浏览器记住1分钟

2.填写0 --> 数字还是相当于秒 ==> 0 ==> 表示立即失效

3.填写-1 --> 这个数字表示只是临时记住 ==> 浏览器一旦关闭,那么cookie失效 ==> 浏览器一直不关闭==> 一直有效

通过上面的设置.需要删除一个cookie怎么办?

重新发送相同的cookie.设置cookie的有效时间为0.那么就相当于删除该cookie.   
                    思考:如果我们不设置MaxAge,那么cookie默认有效时间是多长? ==> 默认有效时间是当浏览器关闭cookie删除也就是 相当于-1;

2.什么时候给我

研究什么时候发送cookie 实际上就是对cookie路径的研究.

访问http://localhost/day11-cookie/EServlet?name=HASEE这个路径时添加的cookie路径是==>/day11-cookie

路径默认会使用访问资源的当前路径作为cookie路径.

http://localhost/day11-cookie/ABC/BCD/AServlet ==> http://localhost/day11-cookie/ABC/BCD

路径在什么时候有效(会发送这个cookie呢?)?

浏览器记录了如下cookie

a  /day11-cookie   ==>  凡是/day11-cookie 路径下的所有子路径全都发送cookie

b /day11-cookie/ABC

c /day11-cookie/BCD

d /

有以下路径,在访问那些路径是会发送该cookie

http://localhost/day11-cookie/ABC/BCD/AServlet     ==> 会发送a,b cookie

http://localhost/day11-cookie/BCD/BServlet ==> ac

http://localhost/day10/AServlet ==> d

在我们操作cookie时,除了默认赋予路径外,我们可不可以自己来设置cookie的路径呢?

使用cookie.setPath方法可以设置.

3.cookie的域问题(了解)

比如 baidu这个域上有多个主机,在这多个主机之间想共享一个cookie,那么这个cookie该如何设置?

music.baidu.com /day01

zhidao.baidu.com /day02

map.baidu.com / day03

cookie该如何设置呢? ==>  域 ".baidu.com"  ==> 这么设置那么 以上三个地址都可以跟这个主机匹配.

==>  路径 "/"   ==> 不管什么Context路径都会发送

4.cookie保存中文

因为传输中不支持中文.所以我们要先对中文进行编码

编码:URLEncoder.encode(str,charset);

浏览器还给我们时,我们再解码回来即可

解码:URLDecoder.decode(str,charset);

cookie 巩固的更多相关文章

  1. 超大 Cookie 拒绝服务攻击

    有没有想过,如果网站的 Cookie 特别多特别大,会发生什么情况? 不多说,马上来试验一下: for (i = 0; i < 20; i++) document.cookie = i + '= ...

  2. IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

    你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...

  3. 解决cookie跨域访问

    一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...

  4. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  5. 一个诡异的COOKIE问题

    今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log 有一条 [ error ] [2]setcookie() expects ...

  6. [转载]Cookie/Session的机制与安全

    Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...

  7. jquery.cookie的使用

    今天想到了要为自己的影像日记增加赞的功能,并且需要用到cookie. 记得原生的js操作cookie也不是很麻烦的,但似乎jquery更简单,不过相比原生js,需要额外引入2个文件,似乎又不是很好,但 ...

  8. 跨域问题,前端主动向后台发送cookie

    跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同  http://www.baidu.com:80 和 https:/ ...

  9. 【流量劫持】沉默中的狂怒 —— Cookie 大喷发

    精简版:http://www.cnblogs.com/index-html/p/mitm-cookie-crack.html 前言 上一篇文章 讲解了如何借助前端技术,打造一个比 SSLStrip 更 ...

  10. 好好了解一下Cookie

    Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新 ...

随机推荐

  1. jquery easyui 1.4.1 API( CHM版)

    ChangeLog Bug The combogrid has different height than other combo components. fixed. datagrid: The r ...

  2. 最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi

    最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi 使用Jexus5.8.1独立版 http://www.linuxdot.net/ ps:该“独立版”支持64位的CentOS ...

  3. 在CSS中定义a:link、a:visited、a:hover、a:active顺序

    摘自:http://blog.snsgou.com/post-2.html     以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面.出现一些问题,搜索引擎查了一些网站和资料,发现 ...

  4. Thinking in java学习笔记之set

    Random rand = new Random(47); Set<Integer> set = new HashSet<Integer>(); for(int i=0;i&l ...

  5. ubuntu16.04装MatConvNet

    按matconvnet官网上的步骤来,编译代码的时候会发现编译失败. 参考这条issues 以下是我的解决方案: I use ubuntu16.04 with x64 architecture. I ...

  6. gulp复制整个文件夹或文件到指定目录(包括拷贝单个文件)

    整个目录: gulp.task('copy', function() { return gulp.src('src/**/*') .pipe(gulp.dest('dist')) }); gulp拷贝 ...

  7. a冲刺总结随笔

    Alpha版本计划完成一般的便签功能:   预期项目 实际进展 首页瀑布流方块布局 1 按新旧顺序排列 1 增加记录 1 编辑文字信息 1 标记喜爱 0 删除文字信息 1 手动添加分类 0 反馈页面 ...

  8. Node实践之二

    先从一个简单的demo说起,用cmd打开命令提示符,输入echo Hello,大家是不是看到终端上显示出了Hello字样,事实上这就是一个简单的事件. 回到正题,相信提到node.js,免不了让人想起 ...

  9. Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...

  10. wamp(win1064位家庭版+apache2.4.20+php5.5.37+mysql5.5.50)环境搭建

    wamp环境搭建之软件准备 *php:http://windows.php.net/downloads/releases/php-5.5.37-Win32-VC11-x86.zip *apache:h ...