Continuo con las sesiones.

Gmanao
05 de Marzo del 2004
Perdonar q abra un nuevo hilo sobre el tema pero tengo dudas y queria separarlas del resto.

Yo hago esto. Tengo un formulario que manda los datos a un servlet. El servlet tiene una rutina donde busca el usuario y el password que le paso desde el formulario. Si lo encuentra hago esto:
...
int ok = (¿esta en la bbdd?)?1:0;
if (ok==0) //no lo encontre
response.sendRedirect("admin/index.jsp?error=1"); //le mando otra vez al login y saco un msg.
else {
HttpSession sesion = request.getSession(true);
sesion.putValue("login", user);//resto de vars.
response.sendRedirect("admin/menu.jsp");
}

Bien, ahora al llegar a menu.jsp lo primero que hago es esto:
<%
HttpSession s = request.getSession();
if (s.isNew())
response.sendRedirect("index.jsp");//lo saco. aunque me da error luego lo mirare, pero es la idea.
else{
//para recuperar la var. login de la sesion.
String login = s.getValue("login").toString();
//si llega aqui es que hay sesion.
}
%>
Esto funciona y evita que accedan a menu.jsp sin autenticarse contra mi bbdd, pero, no se si este el es mejor sistema o tiene problemas, por ejemplo, he visto que el contador de sesiones (el del tomcat) va en aumento, ¿las puedo borrar yo cada cierto tiempo?

En fin, espero vuestro comentarios.

Salu2. All.

Gmanao
05 de Marzo del 2004
A ver si nos animamos !!!

He modificado algunas cosas:
1º. He creado un archivo llamado sessionadmin.inc.jsp
este archivo lo meto al principio de cada pagina del administrador para ver si puede o no puede seguir.
<%@ include file="/sessionadmin.inc.jsp" %>

Bien. el susodicho fichero a su vez tiene esto:
<%
HttpSession s = request.getSession(false);
if (s.getAttribute("login") == null){
response.sendRedirect("../index.jsp");//vuelvo al inicio de admin
}
%>

Por supuesto esto tiene algunas limitaciones, pero de momento es lo mejor q se me ha ocurrido.