Sesiones en JSP

Valeria
01 de Junio del 2005
Hola
quiero saber si se puede inciar una sesion con una clave y pueda ejecutar cualquier opcion del menu sin que sea necesario q la vuelva a escribir????
Como se hace???

Se los voy a agradecer mucho

frantic
01 de Junio del 2005
Lo que te comentan es correcto debes setear algun objeto que contenga los datos que tu necesitas, en tu caso necesitarias antes que nada un jsp o un servlet que reciban los datos del usuario (login y password) y al verificarlos cree dicho objeto y lo coloque en la session (crearías una nueva para tal fin).
Luego simplemente comprueba en los jsp´s y/o servlets a los que solo pueda tener acceso si se ha logeado si esa session existe y además no es nueva.
Toma en cuenta lo siguiente, si una session no ha sido creada los jsp´s la crean automáticamente, de todos modos saber si la session no es nueva es simple te dejo un segmento de código de como podrías hacer esto.
Saludos....

<%
/*
Verificación de Session
*/

//NOTA: Cuando una sesion ha caducado, los JSPs la crean nueva, es decir que para
//controlar que no suceda esto se verifica si la sesion es nueva para determinar
//si esta caduco, y si es asi, se redirecciona al login de la aplicacion
session = request.getSession();

if(session.isNew()){
RequestDispatcher rd = getServletContext().getRequestDispatcher("tu_pagina_de_error.jsp");

//Seteamos el mensaje de error
String title = "Error de sesión caducada o inexistente";
String msg = "Su sesión ha caducado o no ha sido creada y debe crear una nueva,n" +
"por favor vuelva a hacer login en la aplicación.";

//Agregamos el mensaje que proviene de la Exception que se disparo
String exMsg = "Excepción interna de seguridad, sesión caducada o inexistente";

//Establecemos una url de vuelta a la página anterior para el usuario
String backUrl = "../RegistroOrdenes/login.jsp";
String urlName = "Login";

this.log(exMsg); //Generamos log en el servidor

//Seteamos los atributos
request.setAttribute("title", title);
request.setAttribute("msg", msg);
request.setAttribute("exMsg", exMsg);
request.setAttribute("backUrl", backUrl);
request.setAttribute("urlName", urlName);
rd.forward(request, response);
}

/*
*************************************************
Fin de la verificación
*/
%>

P.D.:
Ojo....
los mensajes y titulos String que utilizo aqui los recupero en la página de error generica que dependiendo de la excepcion lo hace de una u otra manera, ese es mi método, pero otra forma es tener una página de error configurada en los jsp y lanzar una excepción con el mensaje que desees.

geobasis
01 de Junio del 2005
debes utilizar session.setAttribute(nombreobjeto,objeto) en la pagina de logina y session.getAttribute(nombreobjeto) en las paginas que se deben proteger controlando que lo que tedevuelve no sea null, eso significa que ha pasado por la pagina de login.

Si tienes alguna duda escribeme