2010-07-17 2 views
3

서블릿 사양을 사용하여 응용 프로그램을 개발할 때 주어진 클라이언트에 대한 모든 새로운 요청에 대해 항상 쿠키를 만들었습니다 (JSESSIONID). 하지만 약간의 생각을 준 후, 서블릿 컨테이너가 쿠키 헤더를 생성하는 것보다 더 논리적이지 않다. 세션이 요청되고 코드로 작성된 후에 ? 쿠키가 사용 중지 된 고객의 경우 각 요청에 대해 새 HttpSession이 생성되지 않습니까?요청마다 새로운 HttpSession이 필요하십니까?

질문이 아직 불분명해서 편집 할 수 있다면 알려주십시오. TIA.

답변

1

서블릿이 명시 적으로 명시 적으로 세션을 만들지 않는 한 새로운 세션은 기본적으로 서블릿 컨테이너에서 생성되지 않습니다. Header에 JSEESIONID가 채워지고 있다고해서 서버에 seesion이 있어야한다는 것을 의미하지는 않습니다.

A : 이것에 예외가 하나가

으로 가지고 멀리하지 쿠키가 켜져> = "false"를 %가 <퍼센트 @ 페이지 세션하지 않는 한이없는 경우 기본적으로 세션을 만드는 것이 JSP를에 웹 컨테이너는 여러 개의 메서드를 사용하여 클라이언트와 서버간에 식별자를 전달하는 것과 관련된 세션을 사용자와 연관시킬 수 있습니다. 식별자는 쿠키로 클라이언트에서 으로 유지되거나 일 수 있으며 웹 구성 요소에는 클라이언트에 인 모든 URL에 식별자가 포함될 수 있습니다.

응용 프로그램이 세션을 객체를 사용하는 경우, 해당 세션 추적을 확인해야합니다은 클라이언트가 쿠키를 해제 할 때마다 응용 프로그램이 URL을 다시함으로써 사용할 수 있습니다. 서블릿에서 모든 URL 에 대해 응답 encodeURL (URL) 메서드를 호출하여 을 반환합니다. 이 방법 은 쿠키가 비활성화 된 경우에만 URL에 세션 ID를 포함합니다. 그렇지 않으면 URL 을 변경하지 않고 반환합니다.

+0

그렇다면 어쨌든 컨테이너가 새로운 세션을 생성하지 않을 경우 사전에 JSESSIONID를 생성하는 목적은 무엇입니까? – sasuke

+0

오, 음,이 질문에 대한 새로운 질문을 할 것입니다. 도와 주셔서 감사합니다. – sasuke

관련 문제