java - 从 HttpServletRequest 获取损坏的 cookie 值

标签 java servlets

浏览器发送一个类似于 fbm_123456=base_domain=.test.com; 的 cookie(这是由 Facebook Javascript SDK 设置的 cookie),这就是我从 FireBug 中看到的。

但是当我在服务器端读取它时,我的 cookie.getValue() 仅返回 base_domain 作为值,我的意思是 =.test。 com 部分丢失。所有其他 cookie 参数均为 null(这很好)。

这怎么可能?也许我错过了一些 cookies ,它是某种特殊的 cookies ?我怎样才能得到原始的cookie值?

最佳答案

cookie 无效。 Cookie 名称或值中不允许使用“=”字符。如果您使用 Tomcat,那么在更高版本中您可以使用以下系统属性来允许读取无效的 cookie:

-Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_EQUALS_IN_VALUE=true

正确的cookie值应该是:

fbm_123456="base_domain=.test.com"

(注意引号)

关于java - 从 HttpServletRequest 获取损坏的 cookie 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335052/

相关文章:

java - 为什么更新 HttpServletResponse 需要这么长时间? ( Apache 汤姆猫)

java - HttpSession 有什么问题?

java - 如何在 Java 中为文件名(不是内容)指定一个字符集?

java - 文件选择器上的重命名按钮

java - 如何将字符串列表转换为对象列表?

java - 数据库保存后是否真的有必要从事务中返回保存的实体?

java - 使用 JSP/Servlet 递增/递减值

java - 如何在不使用太多内存的情况下用 Java 处理大数据集

java - 如何从 jar 文件调用 servlet

java - 我无法让 servlet 使用 ajax 和 xml 将参数发送到 jsp 文件