문제

나는 항상 당연하게 여겨왔다. JSESSIONID 서블릿 사양을 사용하여 애플리케이션을 개발할 때 특정 클라이언트에 대한 모든 새로운 요청에 대해 생성되는 쿠키입니다.그러나 조금 생각해 보면 서블릿 컨테이너가 쿠키 헤더만 생성하는 것이 더 논리적이지 않습니다. ~ 후에 세션이 코드에서 요청되고 생성되었습니까?쿠키가 비활성화된 클라이언트의 경우 새 쿠키가 생성되지 않나요? HttpSession 각 요청에 대해?

질문이 여전히 불분명한 경우 편집할 수 있도록 알려주시기 바랍니다.티아.

도움이 되었습니까?

해결책

새 세션은 서블릿이 실제로 명시적으로 생성하지 않는 한 기본적으로 서블릿 컨테이너에 의해 생성되지 않습니다.헤더에 JSEESIONID가 채워져 있다고 해서 서버에 Seesion이 있어야 한다는 의미는 아닙니다.이에 대한 예외는 <%@ page session="false" %>가 아닌 한 세션이 없으면 기본적으로 세션을 생성하는 JSP입니다.

쿠키를 활성화하지 않는 한:

웹 컨테이너는 여러 방법을 사용하여 세션을 사용자와 연결할 수 있으며, 여기에는 클라이언트와 서버간에 식별자를 전달하는 것이 포함됩니다.식별자는 클라이언트에서 쿠키로 유지 관리 할 수 ​​있거나 웹 구성 요소는 클라이언트에 반환되는 모든 URL에 식별자를 포함 할 수 있습니다.

응용 프로그램이 세션 객체를 사용하는 경우 클라이언트가 쿠키를 끄는 경우마다 응용 프로그램이 URL을 다시 작성하여 세션 추적을 활성화해야합니다.서블릿에서 반환 한 모든 URL에서 응답의 EncodeUrl (URL) 메소드를 호출하여이를 수행합니다.이 방법에는 쿠키가 비활성화 된 경우에만 URL의 세션 ID가 포함됩니다.그렇지 않으면 변경되지 않은 URL을 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top