ホームページ  >  記事  >  Java  >  JavaでServlet Cookieが値を取得できない問題の解決方法

JavaでServlet Cookieが値を取得できない問題の解決方法

怪我咯
怪我咯オリジナル
2017-06-30 10:39:182010ブラウズ

この記事では、Java で Servlet Cookie が値を取得できない理由の解決策に関する関連情報を主に紹介します。必要な方は、

Java の Servlet Cookie が値を取得できない理由の解決策を参照してください。値

現象: Cookie を使用した HTTP リクエストをテストすると、サーバーは request.getHead

er("cookie") を使用して値を取得できるが、request.getCookies() を使用して値を取得できないことがわかりました。

 Cookie mycookies[] = request.getCookies();
常に uid の値より小さい値を取得します (ポート 80 を除く)

原因:

ブラウザの特定の Cookie 値を確認したところ、


http://localhost:8080/

が見つかりました

アクセスすると、Cookie の値が localhost の下に配置され、サーバーによって自動的に生成された SESSIONID も localhost パスの下に保存されます。
http://127.0.0.1:8080/

にアクセスすると、Cookie uid 値は 127.0.0.1:8080 の下に配置され、127.0.0.1:8080 の下の Cookie サーバー サーブレットと SESSIONID は取得できません。サーバーによって自動生成されるファイルは 127.0.0.1 未満であり、uid の保存場所とは異なります。

そのため、サーバーが Cookie を送信するとき、

String host=request.getHeader("host");

if(host.indexOf(":")>-1){
  host=host.split(":")[0];
  }

に変更するか、設定を放棄する必要があります

mycookie.setDomain(host);

この方法では、Cookie の値も 127.0.0.1 で保存され、ポート番号とは関係ありません

もちろん、それはサーバーです。すでにドメイン名を持っている場合は、ポート番号で Cookie 値を取得できないという問題はありません。

解決策:

String cookie=request.getHeader("cookie");

Cookie mycookies[] = request.getCookies();
それを取得するには、前の行を追加します。

以上がJavaでServlet Cookieが値を取得できない問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。