如何使用JSP正确获取cookie值?读取值中带有“=”的cookie将被截断

时间:2016-12-07 03:30:02

标签: jsp cookies

我使用IE开发人员工具检查cookie:

IE 11 >> Press F12 >> Network >> Details >> Cookies

它正确显示我的cookie密钥/值:

Key: SSO
Value: AP_KEY=11111&SSO_KEY=22222&ACCOUNT=JOHN_SMITH

但是当我使用jsp获取cookie值时,我总是得到“AP_KEY”。 这是我的代码:

    Cookie cookies [] = request.getCookies();
    Cookie myCookie = null;
    if (cookies != null){
        for (int i = 0; i < cookies.length; i++) {              
            out.println("Name: " + cookies [i].getName());
            out.println("Value: " + cookies [i].getValue());                
        }
    }

结果是:

Name: SSO Value: AP_KEY

我添加编码但仍然获得“AP_KEY”:

java.net.URLDecoder.decode(cookies [i].getValue(), "UTF-8");

任何意见和建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

我的网络服务器是Tomcat 7.经过大量搜索,我发现这篇文章: https://bz.apache.org/bugzilla/show_bug.cgi?id=49252

这篇文章提到有一个配置选项允许cookie值中的等号,自6.0.24起,请参阅         http://tomcat.apache.org/tomcat-6.0-doc/config/systemprops.html

根据文件,我添加

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

在catalina.sh中,问题解决了!