JSP中Cookie的读写
Cookie的本质是一个键值对,当浏览器访问web服务器的时候写入在客户端机器上,里面记录一些信息。Cookie还有一些附加信息,比如域名、有效时间、注释等等。
下面是一个jsp中写入读取Cookie的测试:在顶级域名中写入Cookie,在子域名中读取,目的是实现一个分布系统的单点登录。
两个jsp中读写代码如下:
写入:
<%
Cookie cookie = new Cookie( "write", "cookie_write");
cookie.setComment( "这是一个Cookie写入测试!");
cookie.setVersion(100);
cookie.setMaxAge(3600);
cookie.setDomain( ".iisp.com");
response.addCookie(cookie);
%>
Cookie cookie = new Cookie( "write", "cookie_write");
cookie.setComment( "这是一个Cookie写入测试!");
cookie.setVersion(100);
cookie.setMaxAge(3600);
cookie.setDomain( ".iisp.com");
response.addCookie(cookie);
%>
读取
<%
Cookie cookies[]=request.getCookies();
out.println( " cookie的数量为:"+ cookies.length);
out.println( "<br>"+ "<br>");
for( int i = 0;i<cookies.length;i++){
out.println( "getName="+cookies[i].getName()+ "<br>");
out.println( "getValue="+cookies[i].getValue()+ "<br>");
out.println( "getComment="+cookies[i].getComment()+ "<br>");
out.println( "getDomain="+cookies[i].getDomain()+ "<br>");
out.println( "getPath="+cookies[i].getPath()+ "<br>");
out.println( "getMaxAge="+cookies[i].getMaxAge()+ "<br>");
out.println( "getVersion="+cookies[i].getVersion()+ "<br>");
out.println( "getSecure="+cookies[i].getSecure()+ "<br>");
out.println( "<br>"+ "<br>");
}
%>
Cookie cookies[]=request.getCookies();
out.println( " cookie的数量为:"+ cookies.length);
out.println( "<br>"+ "<br>");
for( int i = 0;i<cookies.length;i++){
out.println( "getName="+cookies[i].getName()+ "<br>");
out.println( "getValue="+cookies[i].getValue()+ "<br>");
out.println( "getComment="+cookies[i].getComment()+ "<br>");
out.println( "getDomain="+cookies[i].getDomain()+ "<br>");
out.println( "getPath="+cookies[i].getPath()+ "<br>");
out.println( "getMaxAge="+cookies[i].getMaxAge()+ "<br>");
out.println( "getVersion="+cookies[i].getVersion()+ "<br>");
out.println( "getSecure="+cookies[i].getSecure()+ "<br>");
out.println( "<br>"+ "<br>");
}
%>
测试结果表明:Cookied的写入读取均没有问题,并且Cookie的访问和域名有密切关系。子域名下可以读取到上级域名的Cookie。而不能读取到其他域名下的Cookie。