자바 에서 Servlet Cookie 가 값 을 얻 지 못 하 는 원인 해결 방법

1310 단어 자바ServletCookie
자바 에서 Servlet Cookie 가 값 을 얻 지 못 하 는 원인 해결 방법
현상:
쿠키 가 있 는 HTTP 요청 을 테스트 할 때 서버 에서 request.getHeader("쿠키")로 값 을 찾 을 수 있 음;하지만 request.getCookies()로 는 안 됩 니 다.

 Cookie mycookies[] = request.getCookies();
uid 의 값 을 영원히 가 져 올 수 없습니다.(80 포트 번호 제외)
원인:
브 라 우 저의 구체 적 인 쿠키 값 을 찾 아 보 니
http://localhost:8080/ 방문 할 때 쿠키 값 은 localhost 아래 에 두 고 서버 가 자동 으로 생 성 하 는 SESSIONID 도 localhost 경로 에 저 장 됩 니 다.
http://127.0.0.1:8080/방문 할 때 쿠키 uid 값 은 127.0.0.1:8080 에 두 고 127.0.0.1:8080 에 있 는 쿠키 서버 의 Servlet 는 영원히 얻 을 수 없습니다.반면 서버 가 자동 으로 생 성 하 는 SESSIONID 는 127.0.0.1 로 uid 저장 위치 와 다르다.
그래서 서버 에서 쿠키 를 보 낼 때,

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

if(host.indexOf(":")>-1){
  host=host.split(":")[0];
  }
설정 을 포기 하거나

mycookie.setDomain(host);
이러한 쿠키 값 도 127.0.0.1 에 저장 되 어 포트 번호 와 관련 이 없습니다.
 물론 서버 에 도 메 인 이름 이 있 으 면 포트 번호 에서 쿠키 값 을 얻 지 못 합 니 다.
해결 방법:

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

Cookie mycookies[] = request.getCookies();

앞 줄 을 더 하면 뒤쪽 에서 찾 을 수 있 습 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기