一、Cookie的创建
java.servlet.http.Cooie类只提供了一个带参数的构造方法用于创建Cookie:
java.servlet.http.Cookie(java.lang.String name, java.lang.String value)
二、Cookie各属性的介绍
1、comment
一个描述cookie用途的注释。
2、domain
域名指定cookie在哪个域中有效,例如:Domain=“.blog.51cto.com”。
Cookie是不可跨域名的,域名www.google.com办法的Cookie不会被提交到www.baidu.com去,这是由Cookie的隐私安全机制决定的。
同一级域名的2个不同下一级域名(如www.cctv.com和mail.cctv.com)也不能交换使用Cookie,因为二者的域名并不严格相同。如果想使cctv.com名下的所有域名交互使用Cookie,可以如下设置Cookie的domain属性:
cookie.setDomain(".cctv.com");
domain参数必须以“.”开始,name相同但domain不同的2个Cookie是不同的Cookie。
3、maxAge
返回cookie在客户端最大的有效时间,以秒为单位。
Cookie的maxAge的默认值为-1,表明这是一个临时Cookie。临时Cookie不会被保存到磁盘上,它仅仅存在于当前浏览器所在的内存中,浏览器关闭后该类型的Cookie也随之消失。
如果将maxAge的值设为0,表示删除这个Cookie。当浏览器收到maxAge为0的Cookie时,会直接删除该Cookie。
如果设置为正整数,则表示该Cookie在客户端的有效时间。
4、name
Cookie的名字。
这个名称必须遵循RFC 2109的规范。这意味着它仅仅能包含ASCII码字符,并且不能包含逗号,分号,或者空格,或者以$开头的字符串,cookie的名字在创建后就不能再改变了。
5、path
Cookie对服务器上哪个url有效。
Cookie的path属性决定可以访问该Cookie的Web资源的路径。
如果只允许“/session/”下的资源使用该Cookie,则可以如下设置Cookie:cookie.setPath("/session/");。
设置为“/”时允许所有路径使用该Cookie,path属性需要使用“/”结尾,name相同但path不同的2个Cookie是不同的。
页面只能获取它属于的path的Cookie。
path的默认值为request。getServletContext()的返回值。
6、secure
这是一个boolean类型的值,表示是否强制浏览器只在安全的协议中传输Cookie。
HTTP协议不仅是无状态的,而且是不安全的。如果不希望Cookie在HTTP等不安全的协议中传输,可以设置该属性为true,则浏览器只会在HTTPS、SSL等安全协议中传输此类Cookie。
7、value
Cookie的指。
这个值可以发送给任何的服务器,但是仅对某个服务器有作用。这个值在创建后可以通过setValue
方法来改变。
8、version
返回cookie内容所遵循的版本。(目前只有值为1时可用)。
三、方法详情
四、如何向客户端发送Cookie
Cookie nameCookie = new Cookie("name", "Tom"); nameCookie.setMaxAge(60*60*24*7); nameCookie.setComment("这是用户名。"); Cookie pwdCookie = new Cookie("pwd", "123456789"); pwdCookie.setMaxAge(60*60*24*7); pwdCookie.setComment("这是密码。"); response.addCookie(nameCookie); resopnse.addCookie(pwdCookie);
五、如何获取客户端的Cookie
String nameCookie = "name", name; String pwdCookie = "pwd", pwd; Cookie cookies = request.getCookies(); if(cookies != null){ for(Cookie c : cookies){ if(c.getName().equals(nameCookie)) name = c.getValue(); if(c.getName().equals(pwdCookie)) pwd = c.getValue(); } }
六、如何修改和删除Cookie
Cookie类并没有提供修改、删除操作。
如果要修改某个Cookie,只需创建一个同名的Cookie,并添加到response中覆盖原来的Cookie。
如果要删除某个Cookie,只需创建一个同名的Cookie,并将maxAge设为0,添加到response中覆盖原来的Cookie即可。
修改、删除Cookie时,新建的Cookie除value和maxAge之外的所有属性,如name、path、domain等都要和原来的Cookie一样,否则,浏览器将视为2个不同的Cookie,不予覆盖,导致修改、删除失败。
相关推荐
Java相关课程系列笔记之九Servlet学习笔记 Java相关课程系列笔记之十JSP学习笔记 Java相关课程系列笔记之十一Ajax学习笔记 Java相关课程系列笔记之十二jQuery学习笔记 Java相关课程系列笔记之十三Struts2学习笔记 ...
Servlet学习笔记Servlet学习笔记
Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all
林学良Jsp&Servlet学习笔记,html格式的,很基础的学习文档。
《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,...《JSP & Servlet学习笔记(第2版)》以“微博”项目贯穿全书,将JSP & Servlet技术应用于实际项目开发之中,并使用重构方式来改进应用程序架构。
Servlet学习笔记
JSP Servlet 学习笔记 第2版 林信良 随书光盘 第3卷
JSP&Servlet学习笔记,适合初学jsp和servlet的人群,初学者学习可能有点困难
[JSP&Servlet;学习笔记(第2版)]。
servlet学习笔记.doc
JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 本书针对Servlet3.0的新功能全面改版,无论章节架构...
[JSP&Servlet学习笔记(第2版)] 林信良
jsp&servlet学习笔记(第2版)光盘,买书附赠光盘,完片版本。
方立勋servlet学习笔记
书 名:JSP & Servlet学习笔记(第2版) 作 者:(台湾)林信良 著 出 版 社:清华大学出版社 出版时间:2012-5-1 ISBN:9787302283669 纸书页数:456页 定 价:¥ 58.00 内容简介: 本书是作者多年来...
吉林大学珠海学院JSP&Servlet学习笔记(第二版)课后答案
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...