2010-06-04 21 views

Respuesta

13

Puede probarlo con HttpServletRequest#getSession(boolean create) con create=false. Devolverá nulo si aún no se ha creado.

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

Si realmente desea crear la sesión de todos modos si no existe, entonces simplemente agarrarlo y probar la frescura utilizando 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. 
} 

Así fue como lo haría en una Servlet. En un JSP solo puedes probar la frescura con la ayuda de JSTL y EL. Puede tomar la sesión por PageContext#getSession() y luego simplemente llame al isNew().

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

o

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

Una forma de hacerlo es establecer un identificador de sesión en el JSP y compruebe el mismo ID de sesión en el otro servlet JSP o para comprobar si está vivo o no.

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