1. cookie有2个版本(version 0与version 1),version 0最早是网景公司定的,比较保守,value值不能有特殊字符,比如 冒号之类的,象 GMT+05:30,在version 0下,取出来,就变成GMT+05,冒号后的:30丢了
 
2. java中目前支持的是 version 0 ,以获取最好的兼容性
 
3. request.getCookies()并不能一定返回所有的cookie,当cookie数量过多时,会丢失一部分,实测下来,大概在30个左右(可能是我个人的运行环境问题)
 
4. 可以通过request.getHeader("Cookie")来获取所有的cookie,但这个值是一个字符串,需要自己解析(这个方法,理论上可以绕开上面的问题)
 
    /**
* 解析cookie字符串
*
* @param cookie
* @return
*/
public static Map<String, String> parseCookie(String cookie) {
Map<String, String> cookieMap = new HashMap<>();
String[] cookieParts = cookie.split(";");
for (String cookiePart : cookieParts) {
String[] keyValue = cookiePart.split("=");
if (keyValue.length == 2) {
cookieMap.put(keyValue[0].trim(), keyValue[1].trim());
}
}
return cookieMap;
}

  

java取cookie的一些坑的更多相关文章

  1. 【原创】这道Java基础题真的有坑!我也没想到还有续集。

    前情回顾 自从我上次发了<这道Java基础题真的有坑!我求求你,认真思考后再回答.>这篇文章后.我通过这样的一个行文结构: 解析了小马哥出的这道题,让大家明白了这题的坑在哪里,这题背后隐藏 ...

  2. java对cookie的操作

    java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题. 建立一个无生命周期的cookie,即随着浏览器的关闭即 ...

  3. java之Cookie详解

    Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...

  4. JAVA操作COOKIE

    JAVA操作COOKIE 1.设置Cookie Cookie cookie = new Cookie("key", "value"); cookie.setMa ...

  5. Fiddler-005-获取 Cookie 信息

    随着网络安全(例如:登录安全等)要求的不断提升,越来越多的登录应用在登录时添加了验证码登录,而验证码生成算法也在不断的进化,因而对含登录态的自动化测试脚本运行造成了一定程度的困扰,目前解决此种问题的方 ...

  6. java 取小数点后两位 不四舍五入,怎么做

    java 取小数点后两位 不四舍五入,怎么做 正常版: //正常版: import java.text.DecimalFormat; import java.math.RoundingMode; De ...

  7. JAVA取整以及四舍五入

    JAVA取整以及四舍五入 import java.math.BigDecimal; //引入这个包 public class Test { public static void main(String ...

  8. Vuex 页面刷新后store保存的数据会丢失 取cookie值

    在store.js中 export default new vuex.Store({ // 首先声明一个状态 state state:{ pcid: '', postList: [], } //更新状 ...

  9. .NET Core 从1.1升级到2.0记录(Cookie中间件踩坑)

    .NET Core 2.0 新时代 万众瞩目的.NET Core 2.0终于发布了,原定于9.19的dotnetconf大会的发布时间大大提前了1个月,.NET Core 2.0/.NET Stand ...

  10. Java面试中遇到的坑【填坑篇】

    看到大家对上篇<Java面试中遇到的坑>一文表现出强力的关注度,说明大家确实在面试中遇到了类似的难题.大家在文章留言处积极留言探讨面试中遇到的问题,其中几位同学还提出了自己的见解,我感到非 ...

随机推荐

  1. 基于Java Swing开发好看的皮肤

    先介绍几款开源及商业的皮肤. Weblaf:非常赞的套件,界面现代.简约.依赖包较少. 有开源也有商业协议,个人最喜欢的皮肤.https://github.com/mgarin/weblaf PgsL ...

  2. 使用了下UOS浏览器,突然不想说话了

    使用了UOS20,安装上了,但是要激活:我蒙了!好吧,适用下吧: 看下浏览器情况: UOS浏览器 5.1.2365.0 (正式版本) stable (64 位) 修订版本 3cfecd947e7bc5 ...

  3. Java5新特性--可变参数

    可变参数 public class Test01 { public static void main(String[] args) { System.out.println(add(123)); Sy ...

  4. 工具 | todesk最新版设备代码、连接密码读取工具,附下载链接

    工具介绍: todesk最新版读取设备代码.连接密码 工具 下载链接: 下载链接: todesk最新版读取设备代码.连接密码 工具下载 使用说明 工具使用效果如图

  5. 【记录】Truenas scale|Truenas 的 SSH 服务连不上 VScode,终端能连上

    一般 Truenas连不上 就只有两种情况: 第一种:用户没对应用户目录.需要去用户管理里面对每个用户设置目录. 第二种情况,服务有个选项没勾选.这时会发现能输入密码但是一点反应都没有,打开detai ...

  6. codeup之C语言11.1 + C语言11.2 + C语言11.4 + 11.7 + C语言11.8(结构体

    讲真,这几道题可以不做,顶多可以注意下结构体和联合体的区别 Description 完成一个对候选人得票的统计程序.假设有3个候选人,名字分别为Li,Zhang和Fun.使用结构体存储每一个候选人的名 ...

  7. QPlainTextEdit获取鼠标选中内容

    QPlainTextEdit获取鼠标选中内容 m_plainTextEdit是一个 QPlainTextEdit * 获取选中内容 QString selectStr = m_plainTextEdi ...

  8. CF1992E Novice's Mistake

    CF1992E Novice's Mistake 同步于个人博客. Problem Noobish_Monk 有 \(n\in [1,100]\) 个朋友.每个朋友都给了他 \(a\in [1,100 ...

  9. MCN机构如何用板栗看板打造内容工厂式效率?从短视频脚本到多平台分发的全流程协作管理

    一.内容为王的时代,MCN却陷入"人海混战" 在抖音.小红书.B站全面爆发的当下,MCN机构已成为内容产业链的核心角色.脚本创作.拍摄剪辑.品牌对接.渠道分发--每个流程都离不开高 ...

  10. 详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路

    袋鼠云数栈从2016年发布第⼀个版本开始,就始终坚持着以技术为核⼼.安全为底线.提效为⽬标.中台为战略的思想,坚定不移地⾛国产化信创路线,不断推进产品功能迭代.技术创新.服务细化和性能升级. 在数栈过 ...