设定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. File API 读取文件小结

    简单地说,File API只规定怎样从硬盘上提取文件,然后交给在网页中运行的JavaScript代码. 与以往文件上传不一样,File API不是为了向服务器提交文件设计的. 关于File API不能 ...

  2. [masmplus]初次使用报external symbol _start 是配置问题

    初次使用masmplus 其中在 codesg segment 使用了 start 标记, 并在end处标明了:end  start  但是默认的masmplus 会提示 start 为 不认识的 e ...

  3. css一些小的效果

    1.http://www.shejidaren.com/creative-dashboard-designs.html 网址:  

  4. canvas弹动

    弹动,和缓动类似,不过是在终点前反复运动几次达到反弹的效果,具体的算法就是用目标点(target)和物体(mouse)的距离乘以系数累加至坐标上,这样就会有简单的弹动效果,但是一般的弹动效果都是慢慢变 ...

  5. 使用VS Code 从零开始开发并调试.NET Core 应用程序

    最新文章:http://www.cnblogs.com/linezero/p/VSCodeNETCore.html 使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试. 上一 ...

  6. 教你一招:Win10切换输入法与Win7一样(Ctrl + 空格)

    对于win10的朋友,大部分人对输入法都不习惯,如果你把英语输入法删除了,在中文输入法里没有美式键盘,让ctrl+空格与ctrl+Shift都能在搜狗输入法和美式键盘切换.下面小编就教你怎么让Win1 ...

  7. 解决:dpkg:处理 xxx (--configure)或E: Sub-process /usr/bin/dpkg returned an error code (1)

    问题重现: 问题解决办法: #先备份原来的,然后重新新建 sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bak //现将info文件夹更名 sudo mk ...

  8. 关于svg格式图片颜色更改

    利用 style="fill:#8a8acb" 放在path标签下面. 技巧:比如一个svg是一个圆圈内包含一个问号,问号内填充白色,圆圈内,问号外,填充其他颜色,如蓝色.可 设置 ...

  9. bzoj3033

    欧拉路,这题好神啊QAQ 显然选择的方案数有2^n种,因为每个点度数都为二所以肯定是一条欧拉路, 第二问直接爆搜即可... ----然而我并没有想到---- 第一问我推出来了(别问我怎么推的,我说我是 ...

  10. 【整理】认识MSG结构体

    在Windows程序中,消息是由MSG结构体来表示的.MSG结构体的定义如下(参见MSDN): typedef struct tagMSG { HWND hwnd; UINT message; WPA ...