博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cookie
阅读量:7014 次
发布时间:2019-06-28

本文共 1949 字,大约阅读时间需要 6 分钟。

1.会话技术:从浏览器开始访问服务器,到关闭浏览器,这期间发生了许多次请求和响应,这个过程就叫做一次会话。

2.问题:如何在一次会话中保存会话相关的数据。

3.Cookie:将会话相关的数据保存到浏览器中,并且在每次访问服务器时都带过去。

3.1javax.servlet.http.Cookie,可以直接利用此类的构造方法创建一个Cookie,创建出来的Cookie需要设置一个名称和值
3.2response身上具有addCookie的方法,可以将创建出来的组织成响应消息中的set-cookie头,通知浏览器保存该cookie
3.3request身上具有getCookies方法,可以获取浏览器带过来的所有Cookie

3.4Cookie方法:注意,浏览器是根据cookie的名称加上cookie的path来区分是否是同一个cookie的,如果需要覆盖之前的cookie,除了保证名称相同外还要保证path也相同。

public Cookie(String name,String value)利用构造方法创建一个Cookie对象,在创建的时候就要指定该Cookie的名和值
setValue与getValue方法 设置或者获取Cookie的值

setMaxAge与getMaxAge方法 如果不设置cookie的MaxAge(或将其值设置为负值),则默认情况下浏览器会将cookie保存在浏览器的内存中,会随着浏览器关闭而消失。如果设置为一个正值,则代表该Cookie要保存的以秒为单位的时间值,如此,该cookie将会被浏览器保存到硬盘中去。如果将MaxAge设置为0,则是通知浏览器去删除该Cookie。

setPath与getPath方法 用来指定访问哪个ULR及其子URL时带上此cookie,如果不设置此值,则浏览器默认会将发送该cookie的servlet所在的路径作为path使用。
例如:
setPath("/Day06")则/Day06/.../...的路径都会带上该Cookie
如果发送该Cookie的Servlet是 /Day06/servlet/Demo1Servlet,并且未设置setPat,则浏览器在访问/Day06/servlet/..时会带上该cookie
setDomain与getDomain方法 设置cookie对应的域名,此方法一旦调用,则浏览器会认为该cookie是一个第三方cookie而拒收
getName方法 获取该cookie的名字,注意没有setName方法,一个Cookie一旦创建出来就不能修改名字了
3.5浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
实验: 利用cookie实现显示上次访问时间
!~~利用cookie显示最近浏览的商品

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
Cookie [] cs = request.getCookies();
Cookie findC = null;
if(cs!=null){
for(Cookie c : cs){
if("lastTime".equals(c.getName())){
findC = c;
}
}
}
if(findC == null){
response.getWriter().write("您是第一次访问本网站!");
}else{
Long lastTime = Long.parseLong(findC.getValue());
response.getWriter().write("您上次访问时间是:"+new Date(lastTime).toLocaleString());
}
Date date = new Date();
Cookie c = new Cookie("lastTime",date.getTime()+"");
c.setMaxAge(3600*24*30);
c.setPath(request.getContextPath());
//c.setDomain(".baidu.com");
response.addCookie(c);
}

转载于:https://www.cnblogs.com/superPerfect/p/4300688.html

你可能感兴趣的文章
poj 2524 -- Ubiquitous Religions
查看>>
Linux 进程间通信
查看>>
bzoj1036
查看>>
Promise事件比timeout优先
查看>>
RabbitMQ学习总结(7)——Spring整合RabbitMQ实例
查看>>
off文件格式(Object File Format)
查看>>
解答VS2013编译报错不准确是什么原因
查看>>
ajax的post请求
查看>>
阅读笔记《构建之法》一
查看>>
POJ 3140
查看>>
Hive on spark实践
查看>>
批量判断网页是否NOT found
查看>>
富文本编辑器特性
查看>>
Android 虚拟机 程序安装目录
查看>>
oc内容5大区
查看>>
react组件生命周期
查看>>
深入学习Hive应用场景及架构原理
查看>>
[开源]KJFramework.Message 高性能二进制消息框架 - 多元素数组的高性能优化
查看>>
Codeforces Round #333 (Div. 2)
查看>>
构造 BestCoder Round #52 (div.2) 1001 Victor and Machine
查看>>