0

JavaサーブレットでASP.NETが作成したCookieを取得するには?

これは ASP.NET のマイ Cookie です

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

しかし、サーブレットでTo Call itしようとすると、次のように表示されます:emid [最初の等号(=)記号の前の開始文字列のみを表示]

サーブレットで次のコードを使用して、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 に答える