Cookie的一些API及注意事项

来源:互联网 发布:小视频配音软件 编辑:程序博客网 时间:2024/06/10 15:20

    cookies默认是会话级别,存储在浏览器内存中,退出浏览器后自动删除。 一旦WEB浏览器保存了那个cookie,那么它在以后每次访问该WEB服务器时都会在HTTP请求头中将这个cookie回传给WEB服务器。

setMaxAge()参数大于0:表示将当前cookie保存在硬盘上,保存时间由其参数决定; 
setMaxAge()参数小于0:无论该方法的参数是多少,只要小于0,则表示将当前cookie保存在浏览器内存中,浏览器关闭的同时cookie死亡; 
setMaxAge()参数等于0:表示浏览器将当前cookie及之前保存的同名cookie删除,例如刚开始在浏览器端保存了一个cookie,名称为history,保存时间为2天,现在希望将该history删除,这个时候就可以向浏览器端再次发送一个名字为history的cookie,生存时间设置为0。这个时候浏览器会将名字为history的所有cookie删除。

     cookie的作用范围:可以作用于当前目录及其子目录,不能作用于当前目录的上一级目录。cookie.setPath()来设置cookie的作用范围,其中“/”代表站点根目录,request.getContextPath()代表WEB应用根目录,如/day_34。cookie.setPath(request.getContextPath())则cookie的作用域为整个WEB应用。   


Cookie cookie=new Cookie("name","xiaoma");//新建一个name为name,值为xiaoma的cookie
cookie.setMaxAge(30);//秒为单位,为0时表示立即删除该cookie,负数表示不存储该cookie
cookie.setPath();//设置cookie的作用范围
response.addCookie();//增加cookie,参数为cookie的名字

//获取cookie,以下代码为jsp中写的java代码
Cookie [] cookies = request.getCookies();  // 获得存在的cookie,得到cookie数组,再遍历取得相应名字的cookie的值。
if(cookies != null && cookies.length > 0){
for(Cookie cookie: cookies){
//2. 获取 Cookie 的 name 和 value
out.print(cookie.getName() + ": " + cookie.getValue());
out.print("<br>"); 
}
}
0 0