javaweb之Cookie篇
2015-10-19 13:42
477 查看
Cookie是在浏览器访问某个Web资源时,由Web服务器在Http响应消息头中通过Set-Cookie字段发送给浏览器的一组数据。
一个Cookie只能表示一个信息对,这个信息对有一个信息名(Name)和一个信息值(Value)组成。Web服务器可以给一个Web浏览器发送多个Cookie,但每个Cookie的大小一般被限制为4KB。
在ServletAPI中,使用java.servlet.http.Cookie类来封装一个Cookie信息。HttpServletResponse接口中定义addCookie方法,HttpServletRequest中getCookies方法获取浏览器发送给服务器的所有Cookie信息。
Cookie类中相关的方法:
1.构造方法,仅此一个
6.setDomain和getDomain用于设置和获取当前Cookie的有效域。
7.setComment和getComment用于设置和返回当前Cookie的注释部分。
8.setVersion和getVersion用于设置和返回当前Cookie的协议版本。
9.setSecure和getSecure用于设置和返回当前Cookie是否只能使用安全的协议安装Cookie。
使用举例:
[/code]
//设置临时Cookie
Cookietempcook=newCookie("temp","123456789");
tempcook.setMaxAge(-1);
response.addCookie(tempcook);
//设置MaxAge为0的Cookie
Cookiecookie=newCookie("cookie","6666");
cookie.setMaxAge(0);
response.addCookie(cookie);
//设置永久Cookie
Stringuser=request.getParameter("user");
if(user!=null){
Cookieusercookie=newCookie("user",user);
usercookie.setMaxAge(48*3600);//秒为单位,48小时
usercookie.setPath("/");//这个Cookie对站点内所有访问路径都有效
response.addCookie(usercookie);
}
//获取Cookies
Cookie[]cookies=request.getCookies();
for(Cookiec:cookies){
if("temp".equals(c.getName())){
out.println("临时Cookie值:"+c.getValue());
}elseif("cookie".equals(c.getName())){
out.println("Cookie值:"+c.getValue());
}elseif("user".equals(c.getName())){
out.println("永久Cookie值:"+c.getValue());
}
}
一个Cookie只能表示一个信息对,这个信息对有一个信息名(Name)和一个信息值(Value)组成。Web服务器可以给一个Web浏览器发送多个Cookie,但每个Cookie的大小一般被限制为4KB。
在ServletAPI中,使用java.servlet.http.Cookie类来封装一个Cookie信息。HttpServletResponse接口中定义addCookie方法,HttpServletRequest中getCookies方法获取浏览器发送给服务器的所有Cookie信息。
Cookie类中相关的方法:
1.构造方法,仅此一个
publicCookie(java.lang.Stringname,java.lang.Stringvalue) name参数中不能包含任何空白字符,逗号,分号,并不能以$字符开头。 2.getName方法用于获取Cookie名称 3.getValue和setValue分别用于获取和设置Cookie的值 4.setMaxAge和getMaxAge用于设置和获取在客户端的有效时间,单位为秒, 如果设置为0,则表示当Cookie发送到客户端浏览器时立即删除, 如果设置为负数(-1),则表示浏览器并不会把这个Cookie保存在硬盘上,这种Cookie被称为临时Cookie(保存在硬盘上的Cookie叫做永久Cookie), 它们(临时Cookie)只存在于当前浏览器的进程中,当浏览器关闭后,Cookie自动失效。对于IE浏览器来说,不同的浏览器窗口不能共享临时Cookie,但按Ctrl+N组合件或使用js的 window.open打开的窗口,由于和它们的父窗口属于同一个浏览器进程,因此它们可以共享临时Cookie,而在FireFox中,所有的进程和标签页都可以共享临时Cookie。 5.setPath和getPath用于设置和获取当前Cookie的有效Web路径。如果在创建某个Cookie时未设置它的path属性,那么该Cookie只对当前访问的Servlet所在的Web路径及其子路径有效。如果要想使Cookie对Web站点中所有可访问的路径有效,需要将path属性设置为“/”。 [code]Returnsthepathontheservertowhichthebrowserreturnsthiscookie.getPath ()
6.setDomain和getDomain用于设置和获取当前Cookie的有效域。
7.setComment和getComment用于设置和返回当前Cookie的注释部分。
8.setVersion和getVersion用于设置和返回当前Cookie的协议版本。
9.setSecure和getSecure用于设置和返回当前Cookie是否只能使用安全的协议安装Cookie。
ReturnsgetSecure ()
trueifthebrowserissendingcookiesonlyoverasecureprotocol,or
falseifthebrowsercansendcookiesusinganypr otocol.
使用举例:
[/code]
//设置临时Cookie
Cookietempcook=newCookie("temp","123456789");
tempcook.setMaxAge(-1);
response.addCookie(tempcook);
//设置MaxAge为0的Cookie
Cookiecookie=newCookie("cookie","6666");
cookie.setMaxAge(0);
response.addCookie(cookie);
//设置永久Cookie
Stringuser=request.getParameter("user");
if(user!=null){
Cookieusercookie=newCookie("user",user);
usercookie.setMaxAge(48*3600);//秒为单位,48小时
usercookie.setPath("/");//这个Cookie对站点内所有访问路径都有效
response.addCookie(usercookie);
}
-----------------------------------------------------------------------
//获取Cookies
Cookie[]cookies=request.getCookies();
for(Cookiec:cookies){
if("temp".equals(c.getName())){
out.println("临时Cookie值:"+c.getValue());
}elseif("cookie".equals(c.getName())){
out.println("Cookie值:"+c.getValue());
}elseif("user".equals(c.getName())){
out.println("永久Cookie值:"+c.getValue());
}
}
相关文章推荐
- JAVA Hibernate工作原理及为什么要用
- 减少java垃圾回收的开销方法
- eclipse运行WordCount
- java集合map的遍历
- Java基础---String类和基本数据类型包装类
- 使用 Spring JPA 进行大量数据库操作时,连接数过多的问题
- Java安全 – JCE
- Java POI 导出EXCEL经典实现 Java导出Excel
- JAVA RMI远程方法调用简单实例
- Eclipse中调试Maven+Jetty
- Eclipse的Spring插件
- Eclipse导入项目中文乱码
- spring jar包直接下载
- Eclipse 的快捷键以及文档注释、多行注释的快捷键
- Mybatis系列之实战篇(上)
- java--基于UDP的多线程通信
- java中间==、equals和hashCode差额
- Spring的事务到底该给Dao配置还是给Service配置?
- JAVA调用易信接口向指定好友推送消息(二)POST测试
- JavaSE知识点个人总结