2010-06-04 5 views
11

내 웹 응용 프로그램에서 세션 검사가 이미 존재하지 않거나 없습니다.서블릿 및 JSP에서 세션 검사

내 서블릿 및 jsp에서도이를 확인하고 싶습니다.

이 방법을 확인할 수있는 방법이 있습니다.

감사

답변

13

당신은 create=falseHttpServletRequest#getSession(boolean create)로 테스트 할 수 있습니다. 아직 작성되지 않은 경우 null을 리턴합니다. 당신이 실제로 어쨌든 세션을 만들려면이 존재하지 않는 경우

HttpSession session = request.getSession(false); 
if (session == null) { 
    // Session is not created. 
} else { 
    // Session is already created. 
} 

, 다음 그냥 잡아 HttpSession#isNew()를 사용하여 신선도를 테스트 : 당신이 그것을 할 것입니다 방법이었다

HttpSession session = request.getSession(); 
if (session.isNew()) { 
    // Session is freshly created during this request. 
} else { 
    // Session was already created during a previous request. 
} 

서블릿. JSP에서는 JSTL 및 EL의 도움을 받아 신선도 만 테스트 할 수 있습니다. 세션을 잡고 PageContext#getSession()으로 누른 다음 isNew()을 호출하면됩니다.

<c:if test="${pageContext.session.new}"> 
    <p>Session is freshly created during this request.</p> 
</c:if> 

또는

<p>Session is ${pageContext.session.new ? 'freshly' : 'already'} created.</p> 
2

방법 중 하나는 JSP에서 세션 ID를 설정 한 후이 살아인지 아닌지 확인하기 위해 다른 JSP 나 서블릿에서 동일한 세션 ID를 확인하는 것입니다.

HttpSession session = req.getSession(); 
     session.getId();