全部博文(2065)
分类: Java
2009-01-06 11:39:54
使用这两个方法可以指示浏览器把Cookie返回给同一 域内的其他服务器。注意域必须以点开始(例如.sitename.com),非国家类的域(如.com,.edu,.gov)必须包含两个点,国家类的域 (如.com.cn,.edu.uk)必须包含三个点,一般地,Cookie只返回给与发送它的服务器名称完全相同的服务器。
getMaxAge()/setMaxAge():获取/设置Cookie过期之前的时间,以秒计。如果不设置该值,则Cookie只在当前会话内有效,即在用户关闭浏览器之前有效,而且这些Cookie不会保存到磁盘上。
getName()/setName():获取/设置Cookie的名称。本质上,名称和值是需要 程序员始终关心的两个部分。由于HttpServletRequest的getCookies方法返回的是一个Cookie对象的数组,因此通常要用循环 语句来访问这个数组并查找特定名称,然后用getValue()检查它的值。
getPath()/setPath():获取/设置Cookie适用的路径。如果不指定路 径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。这里的方法可以用来设定一些条件。例 如,someCookie.setPath("/"),此时服务器上的所有页面都可以接收到该Cookie。
getSecure()/setSecure():获取/设置一个boolean值,该值表示Cookie是否只能通过加密的连接(即SSL)发送。
getValue()/setValue():获取/设置Cookie的值。如前所述,名称和值实际上是程序员始终关心的两个方面。不过也有一些例外情况,比如把名称作为逻辑标记(也就是说,如果该名称存在,则表示true)。
getVersion()/setVersion():获取/设置Cookie所遵从的协议版本。默认版本0(遵从原先的Netscape规范);版本1遵从RFC 2109,但尚未得到广泛的支持。
1. 写入Cookie --- writecookie.jsp
-------------------------------------------------------------
<%@ page contentType="text/html; charset=ISO8859_1" %>
<%
Cookie _cookie=new Cookie("user_delfancom", "delfan");
_cookie.setMaxAge(30*60); // 设置Cookie的存活时间为30分钟
response.addCookie(_cookie); // 写入客户端硬盘
out.print("写Cookie完成");
%>
<%
Cookie cookies[]=request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中
Cookie sCookie=null;
String sname=null;
String name=null;
if(cookies==null) // 如果没有任何cookie
out.print("none any cookie");
else
{
out.print(cookies.length + "
");
for(int i=0;i
sCookie=cookies[i];
sname=sCookie.getName();
name = sCookie.getValue();
out.println(sname + "->" + name + "
");
}
}
%>
……(中间略)
……(其他内容)
Name value
<%
Cookie cookies[]=request.getCookies();
Cookie sCookie=null;
String svalue=null;
String sname=null;
for(int i=0;i
sCookie=cookies[i];
svalue=sCookie.getValue();
sname=sCookie.getName();
%>
<%=sname%> <%=svalue%>
<%
}
%>
[如何通过循环进行取出来cookie中的值]
<%
Cookie myCookie[]=request.getCookies();//创建一个Cookie对象数组
for(int n=0;n=cookie.length-1;i++);//设立一个循环,来访问Cookie对象数组的每一个元素
Cookie newCookie= myCookie[n];
if(newCookie.getName().equals("username")); //判断元素的值是否为username中的值
{%>
你好,<%=newCookie.getValue()%>!//如果找到后,向他问好
<%}
%>
设置Cookie的存在时间,及删除Cookie 在JSP中,使用setMaxAge(int
expiry)方法来设置Cookie的存在时间,参数expiry应是一个整数。正值表示cookie将在这么多秒以后失效。
注意这个值是cookie将要存在的最大时间,而不是cookie现在的存在时间。
负值表示当浏览器关闭时,Cookie将会被删除。零值则是要删除该Cookie。 如:
<%
Cookie deleteNewCookie=new Cookie("newcookie",null);
deleteNewCookie.setMaxAge(0);
deleteNewCookie.setPath("/");
response.addCookie(deleteNewCookie);
%>