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