javaにおけるServlet Cookieの値が取れない原因解決方法


javaにおけるServlet Cookieの値が取れない原因解決方法
現象:
Cookieを持つHTTP要求をテストする時、サービス端末はrequest.getHeader(「cookie」)で値に行くことができます。でもrequest.get Cookiesではだめです。

 Cookie mycookies[] = request.getCookies();
ではいつまでもuidの値を取得できません。80ポート番号を除く)
理由:
ブラウザの具体的なクッキー値を調べたら、発見されました。
http://localhost:8080/ アクセス時には、cookie値がlocal hostの下に置かれ、サーバーが自動的に生成したSESSIONIDもlocal hostのパスの下に保存されています。
http://127.0.0.1:8080/アクセス時、cookie uid値は127.1.0.1:8080において、127.1.0.1:8080のcookieサービス端末のServletを永遠に獲得できません。サーバーが自動的に生成するSESSIONIDは127..0.1で、uidの保管位置とは異なる。
ですから、サービスの下でクッキーを送る時、

String host=request.getHeader("host");
に変更する必要があります

if(host.indexOf(":")>-1){
  host=host.split(":")[0];
  }
または設定を破棄する

mycookie.setDomain(host);
このようにcookie値も127..0.1に保存されています。ポート番号とは関連がありません。
 もちろん、サーバーにドメイン名があります。ポート番号でクッキーの値が取れないことはありません。
解決策:

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

Cookie mycookies[] = request.getCookies();

前の行の後ろを加えると取れます。
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。