在jsp页面中增加js如下:(添加了属性名为userName,值为tom)
<% Cookie userCookie = new Cookie("userName","tom");
response.addCookie(userCookie);
%>
取出cookie中的值:
//如果cookie中存在名为cookieName的属性,则返回该属性值
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
}
操作Cookie的基本流程:
要把Cookie发送到客户端,Servlet先要调用new Cookie(name,value)用合适的名字和值创建一个或多个Cookie,通过cookie.setXXX设置各种属性,通过response.addCookie(cookie)把cookie加入应答头。
要从客户端读入Cookie,Servlet应该调用request.getCookies(),getCookies()方法返回一个Cookie对象的数组。在大多数情况下,你只需要用循环访问该数组的各个元素寻找指定名 字的Cookie,然后对该Cookie调用getValue方法取得与指定名字关联的值。
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的值。