estoy creando la sesión utilizando¿Cómo verificar si la sesión existe o no?
HttpSession session = request.getSession();
Antes de crear la sesión quiero comprobar si existe o no. ¿Cómo haría esto?
estoy creando la sesión utilizando¿Cómo verificar si la sesión existe o no?
HttpSession session = request.getSession();
Antes de crear la sesión quiero comprobar si existe o no. ¿Cómo haría esto?
hay una función request.getSession(boolean create)
Parámetros:
create
- fiel a crear una nueva sesión de esta petición si es necesario; falsa para devolver null si no hay ninguna sesión actual
Por lo tanto, usted puede simplemente pasar false
a decir la getSession
a devolver null si la sesión no existe.
HttpSession session = request.getSession (true); si (session.isNew()) {... hacer algo } else { ... hacer otra cosa }
la .getSession(true)
dice java para crear una nueva sesión si no existe ninguno.
usted puede ser que, por supuesto, también lo hacen:
if(request.getSession(false) != null){
HttpSession session = request.getSession();
}
echar un vistazo a: http://java.sun.com/javaee/6/docs/api/javax/servlet/http/HttpServletRequest.html
aplausos, Jørgen
Si desea comprobar esta antes creación, y luego hacerlo :
HttpSession session = request.getSession(false);
if (session == null) {
// Not created yet. Now do so yourself.
session = request.getSession();
} else {
// Already created.
}
Si no se preocupan por marcar esta después de la creación, entonces también puede hacerlo:
HttpSession session = request.getSession();
if (session.isNew()) {
// Freshly created.
} else {
// Already created.
}
que guarda una línea y un boolean
. El request.getSession()
hace lo mismo que request.getSession(true)
.
Defina una clase, digamos SessionTimeoutIndicator, que implementa la interfaz javax.servlet.http.HttpSessionBindingListener
. A continuación, cree un objeto SessionTimeoutIndicator y agréguelo a la sesión del usuario. Cuando se elimina la sesión, el motor Servlet llamará al método SessionTimeoutIndicator.valueUnbound()
. A continuación, puede implementar valueUnbound()
para realizar la operación requerida.
if(null == session.getAttribute("name")){
// User is not logged in.
}else{
// User IS logged in.
}
Me gustaría agregar que si usted crea una nueva sesión para cada nuevo usuario que se conecte a su sitio web, entonces su rendimiento será duramente golpeado. Use request.getSession (false) para verificar si un usuario tiene una sesión. Con este método, no crea una nueva sesión si va a renderizar una vista en función de si un usuario está autenticado o no.
... mejor explicación que yo ... se refiere a documentos y se mantiene enfocado. –