** Sesiones en JSP **

Para un sistema web el manejar una sesión es una parte básica, java nos ofrece una forma muy sencilla de manejarse, aquí trataré de mostrarle un pequeño ejemplo de como crearla y recuperarla.

Primero una pequeña interfaz, donde solo tendremos dos edit, uno para correo y otro para nombre, la idea es que el correo sea el dato que mantenga la sesión y este se pase entre páginas.

datoscorreo.jsp

<form name=»registro» method=»POST» >
<p>Correo</p><input type=»text» name=»correo» /><br />
<p>Contraseña</p><input type=»password» name=»contrasenia» /><br />
<p><button type=»submit»>Actualizar</button></p>
</form>

Ahora del input «correo» saldrá la sesión, el código en java colócalo antes de comenzar el <form> y lo que se tiene que escribir es:

<% HttpSession sesion = request.getSession(true);
String micorreo= request.getParameter(«correo»);
sesion.setAttribute(«mail»,micorreo);
%>

HttpSession sesion = request.getSession(true); habilita la sesión,

String micorreo= request.getParameter(«correo»); se guarda el dato «correo» en un string, el request recupera el dato de la interfaz, correo es como se llama el input.

sesion.setAttribute(«mail»,micorreo); sesion es el objeto de httpSession antes creado, se llama a setAtribute el cual te pide que a un string que ahí esta como «mail» y se le asigna lo que tenga «micorreo» que es lo que se recupero de la interfaz.

Y con eso ya se a creado una sesión

Recuperar la sesión.

recuperar.jsp

<%String id=(String)session.getAttribute(«mail»);
out.println(id);%>
<%if (id==null){%>
<jsp:forward page=»../error.jsp» ></jsp:forward>
<% }else { %>

el html

<%}%>

String id=(String)session.getAttribute(«mail»); con esto recuperamos la sesión en otra hoja, «mail» fue el string antes definido en setAttribute.

out.println(id); si no crees, imprimelo.

if (id==null) validamos la sesión, este el objetivo, validar que si la persona ingreso al sistema y simplemente preguntar si es nulo lo mande a una hoja de error, hoja que se tuvo que crear previamente.

No soy ningún experto en java, así que si tienes dudas, sugerencias o quejas, hazlo saber,si ocupe mal un termino dimelo por fa!, así aprendemos todos 🙂

Gracias a Raspùs por la observación.

33 comentarios en “** Sesiones en JSP **

  1. estimado, tu mini tutorial me ha servido mucho.
    Te lo agradezco

  2. te falto poner como levantamos el «request» desde java…

    el resto esta perfecto…

  3. Muchas gracias por ese tutoría básico…con esto me puedo guiar de largo….gracias nuevamente.

    • pero como enlazas las paginas por que no corre al ejecutar la pagina de recuperar no reconoce las variables sesion y el dato de correo.

  4. muy buen codigo, me sirvio bastante, se te agradece mucho

    • hola, buenos dias,

      No se como se maneja estas preguntas, pero ya que conseguiste arreglar tu programa, quisiera pedirte el favor si tienes tiempo me ayudes que no he podido crear las sacciones.

      Tengo un Jsp y necesito crearle el manejo de sesiones.
      Gracias

  5. ola a todos, tengo un problema con las sessiones.
    tengo una aplicacion echa en jsp y utilizo como servidor tomcat 5.5, mi problema se da cuando utilizo un mismo browzer para conectar varias sesiones distintas.
    nose si me explique bien.
    gracias de antemano

  6. Hola sabes estoy desarrollando una aplicacion web en java con servlets el problema es que tengo dos usuarios que se conectan a la misma aplicacion y la informacion de ellos se cruza, me parece que hay un conflicto con las sesiones , espero me puedas ayudar te agradezco antes de nada

  7. Hola de nuevo, ya me resuelto mi problema.
    Lo que pasaba es que en las cabeceras de todas paginas tengo un form con un boton de «cerrar sesion» y session.invalidate() dentro del form asi:

    Como pensaba era problema de conocimiento de JSP y HTML porque pensaba que la instruccion no se ejecutaba si no pinchabas en el botón del form (jaja!!!!).
    Hasta la proxima!

  8. Hola!!
    estoy empezando con jsp y no consigo mantener sesion. Creo la sesion en una pagina con
    HttpSession sesion = request.getSession(true)
    y mediante un jsp:forward paso a otra pagina pasando le la sesion con
    HttpSession sesion = request.getSession()
    e imprimo el identificador de sesion con
    System.out.println(sesion.getId())
    Hasta aqui todo bien pero cuando paso de esta segunda pagina a otra tercera (haciendo igual que de la primera a la segunda) la sesion me cambia.

    ¿Como deberia pasar las sesiones?
    Gracias de ante mano.

  9. Eres un puto inutil, tio, para k coño creas un obj sesion si ya existe!!!

  10. ahh diablos, no me deja poner el codigo lo siento 😦

  11. Hola a todos bueno para incluir un archivo en otro jsp, se coloca de la siguiente forma:

    Para cerrar sesiones, solamente con la siguiente linea:

    nomSesion.Invalidate();

    si quieres ponerlo en un link o algo asi, en la accion que haga tu componente es donde pones esa linea.

    Para que una persona no loguee con el mismo usuario, puedes guardar los usuarios en un archivo o en una DB, y cuando loguees a tu usuario, antes de hacer valida la sesion, verificas si el nombre de usuario no esta guardado ya anteriormente, un ejemplo en una DB de MySQL:

  12. Muchas gracias, claro, sencillo y efectivo el ejemplo… arriba las soluciones libres y colaborativas…!!!

  13. Bueno bueno, y como le hago para que una persona no se logge con el mismo usuario???

  14. interesante explicacion gracias por tu post
    solo te faltaria hacer el boton para cerrar sesion y listo too explicado..
    espero k lo completes hasta otra xD!.

  15. Tibu.
    Mil gracias amigo por el sencillo ejemplo

  16. En datoscorreo.jsp, creo que le falta en el action q sea igual a recuperar.jsp,es decir:

    o me equivoco??, como hago para llamar a recuperar.jsp desde mi formulario q se encuentra en datoscorreo.jsp?????

    gracias

    alex

  17. hola, oyes en que programa (software) pego el codigo que explicaste?

  18. Hola amigo gracias. x tu ejemplo, pero una consutla mir acomo puedo hacer ahora para elimnar una sesion , como cuando hacemos click en Cerrar Session de nuestra bandeja de entrada del un correo…porfavor repsonderme. please gracias ..
    alexis.ad@hotmail.com

  19. muchas gracias.. es el codigo mas sencillo y efectivo k he encontrado.. pero tengo una pregunta.. si quiero terminar mi sesion para k ya no entra mi web??

  20. jajaja que pedo, como se ve que no hay mucho que hacer arriba.

  21. sale, chavo pero puntual si no nos dejan, y mejor no hables,y podemos publicar fotos y videos de tus perversiones con meseros y homosexuales

  22. jajaja, te veo a las 5:30 aqui en banco amigo, padre mier y temo y de ahi nos lanzamos a Madero, o te veo a las 10 pm en tec de Mty el sabado y nos la pasamos de joda en Madero alcabo que a ti ni te gustan esos lugares de «tabla» y de ahi salimos derechito jaajajaja.

  23. No le hagan caso a este foro, este tiburón se la pasa mintiendo,ja ja ja,no es cierto; a ver como nos ponemos de acuerdo para lo del domingo.

  24. Hola sabes… buscando informacion sobre servlets encontre un foro en el cual publicaste esta dirección, leí tu ejemplo de sesiones y me interesa un poco el tema… estoy junto con otra persona desarrollando un proyecto sobre servlets, necesitamos el manejo de sesiones y lo he hecho pero no sé por qué las sesiones se traslapan… mi solucion fue ocupar el dispacher de request y bueno creo que ya quedó, no sé si haya una mejor forma de hacerlo.

    Y otra cosa… el sistema accesa a una bd y obtiene unos alores los muestro en una tabla y como requerimiento, nos pidieron que al hacer click sobre el texto en las tablas nos mande a mostrar sólo ese dato, algo como cuando le das click a un correo en hotmail de tu bandeja de entrada y te muestra sólo ese correo donde diste click, cómo hago eso?????????? :S ojala puedas ayudarte. Gracias!!! (si, si responde al correo please!!!)

  25. ——————–>>>>>>

    micorreo= request.getParameter(”correo”);
    sesion.setAttribute(”mail”,micorreo);
    %>

Deja un comentario