1. 从浏览器获取:使用javax.servlet.http.HttpServletRequest获取Cookie数组,通过Cookie名称找出所需的Cookie值。
Cookie[] cookies = request.getCookies();
2. 写入浏览器:使用javax.servlet.http.HttpServletResponse的addCookie()方法。将new出来的Cookie写入浏览器。
response.addCookie(cookie);
3. Cookie的重要属性分析。
domain: 默认值为当前项目所在的域名(或ip)。注意域名的格式是(点号+上一级域名)必须以“."点开始的(localhost除外)。domain决定了能够读取本Cookie的域名,即request只能读取它所在项目的域名,而不可跨域读和写Cookie。因此,如果你想读取别人的Cookie是不可能的,你想恶意删除别人的Cookie也是不可能的,至少浏览器是这么做的;否则,你就只能绕过浏览器,直接对Cookie文件进行操作。
path: 指定域中能够读取此Cookie的路径,默认值为"/"。此路径对其子路径是可视的,即包括子路径请求的request也可以读取此Cookie。
maxAge: 生命期,单位为秒。当值<0,表示浏览器关闭时自动删除,session应该就是这么使用Cookie的;当值=0,表示直接删除Cookie(将response将Cookie写入浏览器时替换同名Cookie,然后马上自我删除),此值用于删除Cookie。
secure: 表示Cookie是否加密,这取决于请求url是http还是https(SSL),一般会使用request.isSecure()方法的返回值来判断。
4. 问题分析:对于每个Web Server,浏览器最多支持200个Cookie、限制每个大小为4kb,但最好使用20个左右。Cookie在浏览器中返回时,是通过HTTP请求头传回到服务器的,故使用request获取的Cookie,实际上是从request.getHeader("cookie")头信息的cookie项中取出来的。所以,cookie值中存在特殊符号时,Cookie直接通过getValue()获取cookie值只是其中一部分,这时就应该想办法从header中解析出完整的Cookie值来。
(1) 如何删除浏览器中的Cookie?
Cookie cookie = new Cookie(cookieName,"");
cookie.setDomain("localhost");
cookie.setPath("/"); //注意路径正确。
cookie.setMaxAge(0); //0表示直接删除,负数表示当浏览器关闭时自动删除
response.addCookie(cookie);
(2) 如何取出带特殊符号(如“@”、“=”等符号,多数是由加密、编码之后产生的)的Cookie值?
String cookiesStr = request.getHeader("cookie");
//用于盛放Cookie名值对
Map<String,String> cookieMap = new HashMap<String,String>();
if(null != cookiesStr){
String[] cookies = cookiesStr.split(";");
int pos;
String name;
String value;
for(String cookie : cookies){
pos = cookie.indexOf("=");
//'='不能没有,也不能是第一个字母,更不能是最后一个字母
if(pos > 0 && pos < cookie.length()-1){
name = cookie.substring(0, pos).trim(); //分隔符";"有空格
value = cookie.substring(pos + 1).trim();
cookieMap.put(name, value);
}
}
}
分享到:
相关推荐
Extjs 关于cookie 实现实时存储 数据存储的操作, 将数据存放cookie中,防止断电
php session cookie cookie应用 PHP 关于cookie的应该 cookie与session的区别
关于Cookie有效期.txt
这是php中的一个关于cookie 的应用,在php中传入cs的变量值
Java小技巧:关于Cookie的操作.txt
ppt介绍了cookie的基本知识,cookie欺骗产生的原理,跨站脚本攻击盗取Cookie,以及Cookie的安全对策
主要介绍了Springboot中登录后关于cookie和session拦截案例,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
NULL 博文链接:https://caryjava.iteye.com/blog/1317773
主要介绍了iOS中关于Cookie验证登录状态的相关资料,需要的朋友可以参考下
今天有同事又问起关于cookie的问题,我就到网上查询了一下做了一些相关的摘要记录下来,以备不时之用。关于cookie的操作,做为JS程序员应该是相对熟悉一些的,所以就不对它进行过多的说明了。 以下就是关于各...
关于Cookie的概念和应用,大家可以看看我前面的几篇文章。并且在Cookie详解这篇文章中,介绍了如何在服务器端和使用JavaScript创建Cookie,并设置属性。 我们知道,Cookie是存储在客户端的,并且现在前后端分离...
这些事自己整理的一些文档,适合于初学者.这里面涵盖了cookie的写法,如何新建cookie,cookie的用法
最通俗的关于Cookie, Session,Token和JWT的相关笔记和理解。在上章笔记中主要介绍一下背景和Cookie。包括Cookie的定义,特点,重要属性,优缺点,作用和使用场景,以及如何解决禁用问题,以及Cookie在客户端和...
这是一份关于cookie和session的知识文档,有关于cookie是什么,图解,cookie对比session有哪些不好,session是什么图解
最通俗的关于Cookie, Session,Token和JWT的相关笔记和理解。在终章笔记中主要介绍一下JWT以及总结Cookie到JWT的区别与发展,包括JWT的定义,特点,重要属性,优缺点,作用和使用场景,Cookie到JWT场景,安全等的...
这是一篇关于cookie的来源,以及cookie的简单介绍,有cookie的一些方法的实例,进行简单的cookie总结
饼干请这是一个非常简单的插件,用于处理欧盟关于 Cookie 的指南。 它只做一项工作:尝试使用用户的 cookie 首选项设置单个 cookie。 这个 cookie 可以被其他脚本使用(结合 jquery.cookie,这个插件的一个依赖项)...
今天小编就为大家分享一篇关于Python3中关于cookie的创建与保存的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
一个关于Cookie应用的例子,比较不错的。
Cookie操作类,各种有关于Cookie技术的操作方法。