Foros del Web » Programación para mayores de 30 ;) » Java »

Como realizar un cierre de sesion con servlets y jsp

Estas en el tema de Como realizar un cierre de sesion con servlets y jsp en el foro de Java en Foros del Web. Estoy realizando una aplicacion web, donde el usuario realiza login, para lo cual uso sesiones y el login se hace mediante un servlet el cual ...
  #1 (permalink)  
Antiguo 20/07/2011, 07:48
 
Fecha de Ingreso: mayo-2010
Mensajes: 33
Antigüedad: 13 años, 11 meses
Puntos: 3
Como realizar un cierre de sesion con servlets y jsp

Estoy realizando una aplicacion web, donde el usuario realiza login, para lo cual uso sesiones y el login se hace mediante un servlet el cual luego es enviado a un jsp donde esta el menu pr¡ncipal y donde debo tener un boton para el cierre de sesion, mi pregunta es como lo realizo o cual es el codigo para cierre de sesion,dejo el codigo del servlet login:


package CentroQuirurgicoController;

import CentroQuirurgicoDATA.Conexion;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
*
* @author Administrador
*/
public class LoginServlet extends HttpServlet {

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {

String usuario = request.getParameter("txtUsuario");
String clave = request.getParameter("txtClave");

Connection cn = new Conexion().getConnection();
String query = "select * from usuario where cod_usuario=?";
PreparedStatement pstmt = cn.prepareStatement(query);
pstmt.setString(1, usuario);
ResultSet rs = pstmt.executeQuery();


if ( rs.next() && clave.equals(rs.getString("Clave"))) {

HttpSession sesion = request.getSession();
sesion.setAttribute("nombre_usuario", usuario);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/index.jsp");
rd.forward(request, response);
} else {
request.setAttribute("validar", "1");
RequestDispatcher rd = getServletContext().getRequestDispatcher("/Login.jsp");
rd.forward(request, response);
}

pstmt.close();
cn.close();
System.out.println("Ok");

}
catch(Exception e){e.printStackTrace();}

finally {
out.close();
}
}}


Otra duda el codigo para el cierre de sesion lo pongo en el servlet o en el jsp del menu
  #2 (permalink)  
Antiguo 20/07/2011, 08:47
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Como realizar un cierre de sesion con servlets y jsp

Una forma es borrando/inicializando los atributos que hayas guardado en la session. Así, aunque la sesión es la misma, tu aplicación no reconocerá que se haya entrado con el login.

La otra forma puede ser llamar a session.invalidate(), pero no la he probado nunca.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 20/07/2011, 09:45
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Como realizar un cierre de sesion con servlets y jsp

session.invalidate()

es la forma correcta de cerrar una sesion
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 20/07/2011, 10:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 33
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Como realizar un cierre de sesion con servlets y jsp

Cita:
Iniciado por New Ver Mensaje
session.invalidate()

es la forma correcta de cerrar una sesion
donde lo coloco en mi servlet de login o en mi jsp en el boton de cerrar sesion?
  #5 (permalink)  
Antiguo 20/07/2011, 14:15
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Como realizar un cierre de sesion con servlets y jsp

Crea un servlet de logout.

Mira busca el Logout.java en este tema:

http://www.forosdelweb.com/f67/aport...5/#post3934335

Para que sea un ejemplo


Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #6 (permalink)  
Antiguo 20/12/2012, 18:45
 
Fecha de Ingreso: octubre-2012
Ubicación: Bogotá
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: Como realizar un cierre de sesion con servlets y jsp

Bno, No Es Por Dañar le El Aporte Al Compañero (De Hecho Está Muy Bueno)
Pero sesion.invalidate() Solo Funciona Correctamente En Una Aplicación De Escritorio.
sesion.invalidate() Es La Forma Correcta De Cerrar Sesión, Pero Ándale A Hacerlo Y Retrocede Con El Botón "Atras" Del Navegador, Y Me Cuentas Que Pasa ;)
  #7 (permalink)  
Antiguo 02/01/2013, 06:03
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Como realizar un cierre de sesion con servlets y jsp

Con eso invalidarás el objeto session, y todos los atributos que tengas agregados se eliminan. Lo correcto es eliminar el atributo en cuestión, en vez de el objeto session.

Etiquetas: jsp, realizar, servlets
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:46.