除了对数据的保存和读取 对Cookie的 *** 作还包括设置Cookie的有关属性
以设置变量的有效周期为例
语法 Cookie 变量名称 setMaxAge(有效周期)
有效周期的时间以秒为单位 时间设置越大 表示Cookie对象的有效时间越长 如果把有效周期设置为 则表示此Cookie对象存放在浏览器后将立即失效 如果把有效周期设置为任意一个负数 则当浏览器关闭后 此Cookie对象立即失效
Cookie类的所有属性 *** 作方法如表所示
方法
意 义
Cookie(String String)
生成一个有名和值的Cookie
clone()
返回当前对象的一个拷贝
getComment()
返回描述该Cookie的注释 没有就为空
getDomain()
返回该Cookie的域名
getMaxAge()
返回该Cookie的最大寿命
getName()
返回该Cookie的名字
getPath()
返回使用该Cookie的所有URL前缀
getSecure()
返回该Cookie的安全标志
getValue()
返回该Cookie的值
getVersion()
返回该Cookie的版本
setComment(String)
设置描述该Cookie的注释
setDomain(String)
设置该Cookie的域名
setMaxAge(int)
设置该Cookie的最大寿命
setPath(String)
设置该Cookie只能被从使用该URL前缀的请求提出
setSecure(boolean)
设置该Cookie的安全标志
setValue(String)
设置该Cookie的值
setVersion(int)
设置该Cookie所使用的协议的版本号
lishixinzhi/Article/program/Java/hx/201311/26996一、java保存写入Cookie
JSP程序片段如下:
//保存写入Cookie
<%
String cookieName="Sender"
Cookie cookie=new Cookie(cookieName, "Test_Content")
cookie.setMaxAge(10) //存活期为10秒
response.addCookie(cookie)
%>
解读一下这段代码:
Cookie cookie=new Cookie(cookieName, "Test_Content")
这一行建立了一个Cookie对象,初始化有两个参数,第一个参数cookieName定义了Cookie的名字,后一个参数,也是一个字符串,定义了Cookie的内容。也就是用户希望网页在用户的机器上标识的文件内容。
接下来一行:cookie.setMaxAge(10),调用了Cookie中的setMaxAge方法,设定Cookie在用户机器硬盘上的存活期为10秒。一个Cookie在用户的硬盘里面存在的时间并不是无限期的,在建立Cookie对象的时候,我们必须制定Cookie的存活期,超过了这个存活期后,Cookie文件就不再起作用,会被用户的浏览器自行删除。如果用户希望用户在下次访问这个页面的时候,Cookie文件仍然有效而且可以被网页读出来的话,用户可以将Cookie的存活期设得稍微长一些。比如cookie.setMaxAge(365*24*60*60)可以让Cookie文件在一年内有效。
二、 读取出Cookie
Cookie文件创建好后,自然还需要用户把它读出来,代码片段如下:
<%
Cookie cookies[]=request.getCookies()//读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面
Cookie sCookie=null
String svalue=null
String sname=null
for(int i=0i<cookies.length-1i++{//用一个循环语句遍历刚才建立的Cookie对象数组
sCookie=cookies //取出数组中的一个Cookie对象
sname=sCookie.getName()//取得这个Cookie的名字
svalue=sCookie.getValue()//取得这个Cookie的内容
%>
<%
}
%>
name value
<%=name%> <%=svalue%>
这一小段JSP文件可以读出用户硬盘上的所有有效的Cookie,也就是仍然在存活期内的Cookie文件。并用表格的形式列出每个Cookie的名字和内容。
解读一下这段代码:
Cookie cookies[]=request.getCookies() 我们用request.getCookies()读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面。
接下来我们用一个循环语句遍历刚才建立的Cookie对象数组,我们用sCookie=cookies取出数组中的一个Cookie对象,然后我们用sCookie.getValue()和sCookie.getName()两个方法来取得这个Cookie的名字和内容。
通过将取出来的Cookie的名字和内容放在字符串变量中,我们就能对其进行各种 *** 作了。在上面的例子里,可通过循环语句的遍历,将所有Cookie放在一张表格中进行显示。
java设置cookie是通过 Servlet 设置的。通过 Servlet 设置 Cookies 包括三个步骤:
(1) 创建一个 Cookie 对象:您可以调用带有 cookie 名称和 cookie 值的 Cookie 构造函数,cookie 名称和 cookie 值都是字符串。
Cookie cookie = new Cookie("key","value")
请记住,无论是名字还是值,都不应该包含空格或以下任何字符:
[ ] ( ) = , " / ? @ :
(2) 设置最大生存周期:您可以使用 setMaxAge 方法来指定 cookie 能够保持有效的时间(以秒为单位)。下面将设置一个最长有效期为 24 小时的 cookie。
cookie.setMaxAge(60*60*24)
(3) 发送 Cookie 到 HTTP 响应头:您可以使用 response.addCookie 来添加 HTTP 响应头中的 Cookies,如下所示:
response.addCookie(cookie)
(4)完整实例:
// 导入必需的 java 库
import java.io.*
import javax.servlet.*
import javax.servlet.http.*
// 扩展 HttpServlet 类
public class HelloForm extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 为名字和姓氏创建 Cookies
Cookie firstName = new Cookie("first_name",
request.getParameter("first_name"))
Cookie lastName = new Cookie("last_name",
request.getParameter("last_name"))
// 为两个 Cookies 设置过期日期为 24 小时后
firstName.setMaxAge(60*60*24)
lastName.setMaxAge(60*60*24)
// 在响应头中添加两个 Cookies
response.addCookie( firstName )
response.addCookie( lastName )
// 设置响应内容类型
response.setContentType("text/htmlcharset=UTF-8")
PrintWriter out = response.getWriter()
String title = "设置 Cookies 实例"
String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n"
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title + "</h1>\n" +
"<ul>\n" +
" <li><b>名字</b>:"
+ request.getParameter("first_name") + "\n</li>" +
" <li><b>姓氏</b>:"
+ request.getParameter("last_name") + "\n</li>" +
"</ul>\n" +
"</body></html>")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)