我有一个客户端向我发送带有逗号分隔值的版本 1 cookie。这在 cookie 的版本 1 中应该可以,但在版本 0 中是不允许的。
所以这就是饼干
test.cookie=1,1
现在,当我阅读 Cookie[] cookies = request.getCookies[] 时,我返回了 2 个这样的 cookie:
test.cookie=1
1=
因此,它将 cookie 的值视为下一个 cookie 的分隔符,这是您在 cookie 的版本 0 中所期望的。所以问题是我可以在从中读取 cookie 之前设置传入 HttpServletRequest 的 cookie 版本。
我知道有一个 Cookie.setVersion(int) 方法,但这对我没有用,因为我没有设置容器的 cookie。(这实际上可能是在容器中设置 cookie 版本的线索,我现在要去看看)
编辑 我解决此问题的方法是仅读取标头,然后读取以分号分隔的列表形式出现的 Cookie 标头的值,然后自己解析每个 cookie 名称值对,从而解析 cookie 值中的逗号然后正确保存,我只得到一个cookie。很高兴知道是否有办法使用 HttpServleRequest.getCookies() 做到这一点。