0

如何在 Java servlet 中获取 ASP.NET 创建的 cookie?

这是我在 ASP.NET 中的 Cookie

emid=11&eud=11&euid=33zU4Yq/p3k=&euseremail=F/zVoXtd4NoAd7yj6Z47gxFVaMCMYha/La6IzlC+xQo=&euserid=33zU4Yq/p3k=&emdn=testing

但是当我尝试在 Servlet 中调用它时,它只打印:emid [仅在第一个等于 (=) 符号之前打印起始字符串]

我在 Servlet 中使用以下代码来打印 cookie..

        Cookie cookie = null;
        Cookie[] cookies = null;
        cookies = request.getCookies();
        if( cookies != null ){
            out.println("<h2> Found Cookies Name and Value</h2>");
            for (int I = 0; I < cookies.length; I++){
               cookie = cookies[I];
               out.print("Name : " + cookie.getName( ) + ",  ");
               out.print("Value: " + cookie.getValue( )+" \n");
            }
         }else{
             out.println(
               "<h2>No cookies founds</h2>");
         }

我的代码有什么问题?

4

1 回答 1

1

等号字符是 cookie 值中的保留字符。解决此问题的规范兼容方法是通过用双引号括起来来引用 cookie 值。但是,有些浏览器不能很好地处理这个问题。如果您使用的是 Tomcat,您可以将系统属性设置-Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_EQUALS_IN_VALUE=true为允许 cookie 值中的等于。

于 2012-05-12T18:00:01.110 回答