5.11 cookie对象
cookie对象是由Web服务器端产生后被保存到浏览器中的信息。cookie对象可以用来保存一些小量的信息在浏览器中。目前主流的浏览器(Internet Explorer和Netscape Navigator)都支持cookie。
可以将cookie写到浏览器中,让浏览器来保存cookie的值,如程序5-25.jsp所示。
案例名称:写入cookie
程序名称:5-25.jsp
<%@ page contentType="text/html;charset=GBK" %>
<%
String strName = "Zhourunfa";
Cookie c = new Cookie("Name1", strName);
response.addCookie(c);
%>
写入Cookie<br><br>
<a href="5-26.jsp">查看</a>
程序显示的结果如图5-31所示。

图5-31 写入cookie的值
读取cookie的方法如程序5-26.jsp所示。
案例名称:读出cookie
程序名称:5-26.jsp
<%@ page contentType="text/html;charset=GBK" %>
<HTML><BODY>
<%
Cookie cookies[] = request.getCookies();
for(int i=0; i<cookies.length; i++) {
if(cookies[i].getName().equals("Name1"))
out.print(cookies[i].getValue());
}
%>
读出Cookie<br><br>
程序显示结果如图5-32所示。

图5-32 读取cookie的值
在使用cookie时,有一些注意事项:
(1)cookie的存储场所是浏览器,但并不是每一种浏览器都具有cookie功能(Internet Explorer和Netscape Navigator都有cookie功能),同时,在客户端浏览器的安全性设置中可以禁用cookie。所以不能假设cookie的写入一定能够成功。
(2)cookie对象不能单独使用,必须和request对象(cookie的读取)或response对象(cookie对象的写入)结合使用。
(3)不同浏览器中存储的cookie不是通用的,例如,IE存储的cookie只有IE自己可以使用。
(4)存储在浏览器中的cookie对任何Web服务器都是开放的,所以写入的cookie可能被其他网页读取或覆盖掉。