Problemas con JSP y la caducidad de las sesiones

elricame
03 de Diciembre del 2004
Hola. Tengo una aplicacion realizada con JSP, servlets y Tomcat. Mi problema es que necesito meter datos en una BD mediante un formulario. Después mando el formulario a la base de datos mediante un servlet, pero antes llamo a otro servlet que me valida cada campo del formulario. Si el usuario se equivoca en algo, le envío una página de error como respuesta. El usuario pulsa el boton de volver del navegador y sale la típica pantalla de que la sesión ha caducado y que des al reload. Si pulsas el reload se recarga la página JSP pero se han perdido los datos que había introducido el usuario. Cómo puedo desactivar que caduque la sesión para que el usuario no pierda los datos introducidos? Gracias

david
03 de Diciembre del 2004
puedes hacer una validacion previa al submit de la siguiente manera, en la intruccion donde tienes el boton que realiza el submit
por ejemplo

<td align="center"><input name="Aceptar" type="submit" value="Aceptar" onClick=" return valida_datos()"></td>

manda llamar a una funcion en javascript dentra de tu misma pagina ( onClick=" return valida_datos()" )

dentro de los tags de cabecera declara la funcion de valida_datos()


<HEAD>
<Script Language="JavaScript">
<!--
function valida_datos()
{

}

-->
</Script>

dentro de esta funcion podras validar todos los datos de tu pagina y alertar en caso de algun dato erroneo
</HEAD>





roymar
03 de Diciembre del 2004
Cuando ud jala la sesion actual, llamela con false, para que no pierda la sesion y obviamente en cada campo del formulario, escriba en cada value el valor respectivo que el usuario ha ingresado.
Suerte con eso.

getparameter
03 de Diciembre del 2004
Una opcion es que quien valide los campos del formulario sea el mismo jsp que los carga ... me explico ... si el action del formulario apunta al mismo fichero, x ejemplo entrar_datos.jsp ... cuando haces el submit puedes hacer los chequeos antes de insertar en tablas .... (codigo reducido)

boolean correcto = false;
if(request.getParameter("datos_enviados") != null){
//hago los chequeos
// si los datos estan OK
//incluso, con un bloque try / catch puedes intentar hacer un insert si el tema es que no puede haber valores duplicados en la tabla de destino
correcto = true;
}

if(correcto) // envias a otra pagina o lo que quieras
else{
//vuelves a pintar el codigo HTML agregando los valores enviados en cada campo ..
<HTML>

<input name"nombre" value="<% if(request.getParameter("nombre") != null){%><%= request.getParameter("nombre") %><%} %>">
</HTML>
}

Mas arriba, para chequear si el formulario fue enviado, analizabamos el parametro datos_enviados, puedes crear este o utilizar cualquiera de los campos que tiene el formulario para comprobar si ha sido enviado ...

Espero haber sido claro, si te quedan dudas, escribeme a mi mail personal y te paso un jsp de ejemplo ...

Salu2
Eu

carolina
03 de Diciembre del 2004
no puedo abrir el programa para el chat dice q lo tengo q acer reload y no se como