Por admin | Para la categoría de java j2ee | noticia del 07-10-2009
Tutorial sesiones
Explicación del ejemplo, un servlet que muestra por get una página html con un formulario con dos campos, nombre y apellidos. El mismo servlet tiene un método post que crea una sesión nueva introduciendo los datos pasados por el formulario y mostrando un html con los datos pasados guardados en sesión y un enlace al formulario get del servlets, más un formulario para el método post cancelando la sesión creada.
Sesiones: Uso con Servlets
– Activar la sesion desde HttpServletRequest
sesion = request.getSession(true);
– Uso de atributos en una sesión: HttpSession
sesion.setAttribute(“identificacion”, new String(“11.15br”));
out.println( “Su identificacion es “ + session.getAttribute(“identificacion”));
sesion.removeAttribute(“identificacion”);
– Invalidar una sesión
sesion.invalidate();
– Mostrar el identificador de una sesión:
out.println(“identificacion de la sesión actual: “ + sesion.getIdentificacion());
Se ejecuta el servlet por el método get, imagen correspondiente

Se ha enviado los campos del formulario responde el método post con la siguiente página

Si le damos al enlace del formulario metiendo otros valores, como la sesión es la misma, para el usuario aunque rellene el formulario, con otros datos. El resultado será el que se muestra en la siguiente imagen

Si pulsamos sobre el botón cancelar, entonces la sesión es invalidada y al pusar sobre el enlace del formulario, podemos registrarnos ya sí, con otro nombre

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | package sesiones; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Servlet implementation class for Servlet: Usuario * */ public class Usuario extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { static final long serialVersionUID = 1L; private HttpSession sesionUsuario; /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#HttpServlet() */ public Usuario() { super(); } /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html"); PrintWriter salida = response.getWriter(); //creamos la salida del html salida.print("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n"); salida.print("<html>\n"); salida.print("<head>\n"); salida.print("<link rel='stylesheet' type='text/css' href='css/estilo.css'/>\n"); salida.print("</head>\n"); salida.print("<body>\n"); salida.print("<div id='contenedor'>\n"); salida.print("<h2> Formulario Sesiones </h2>"); salida.print("<div id='imagen'>"); salida.print("<img src='imagenes/usuario.png' title='usuario'/>"); salida.print("</div>"); salida.print("<form action='Usuario' method='post'>\n<br/>"); salida.print("<label>Nombre</label>\n<br/>"); salida.print("<input type='text' name='nombre'/>\n<br/>"); salida.print("<label>Apellidos</label>\n<br/>"); salida.print("<input type='text' name='apellidos'/>\n<br/>"); salida.print("<input class='boton' type='submit' value='enviar'/>\n<br/>"); salida.print("</form>\n<br/>"); salida.print("<div id='pie'>"); salida.print("<p> www.railsymas.com </p>"); salida.print("</div>"); salida.print("</div>\n"); salida.print("</body>\n<br/>"); salida.print("</html>"); } /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //recuperamos los datos del formulario String nombre = request.getParameter("nombre"); String apellidos = request.getParameter("apellidos"); String cancelada = request.getParameter("cancelar"); //recuperamos el objeto de sesión asociado a la petición sesionUsuario = request.getSession(true); //establecemos el tipo de respuesta response.setContentType("text/html"); PrintWriter salida = response.getWriter(); //creamos la salida del html salida.print("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n"); salida.print("<html>\n"); salida.print("<head>\n"); salida.print("<link rel='stylesheet' type='text/css' href='css/estilo.css'/>\n"); salida.print("</head>\n"); salida.print("<body>\n"); salida.print("<div id='contenedor'>\n"); salida.print("<h2> Resultado Sesión </h2>"); salida.print("<div id='imagen'>"); salida.print("<img src='imagenes/usuario.png' title='carpeta'/>"); salida.print("</div>"); //si la sesion es nueva if ( sesionUsuario.isNew()) { //establecemos los atributos de sesión sesionUsuario.setAttribute("nombre", nombre); sesionUsuario.setAttribute("apellidos", apellidos); salida.print("<p> Usuario nombre: "+sesionUsuario.getAttribute("nombre")+"</p>\n"); salida.print("<p> Usuario apellidos: "+sesionUsuario.getAttribute("apellidos")+"</p>\n"); } else { if (cancelada == null) { salida.print("<p> Ya estas dentro del sistema </p>\n"); salida.print("<p> Usuario nombre: "+sesionUsuario.getAttribute("nombre")+"</p>\n"); } else { //cancelamos la sesión sesionUsuario.invalidate(); } } salida.print("<form action='Usuario' method='post'>\n<br/>"); salida.print("<label>Cancelar Session</label>\n<br/>"); salida.print("<input class='boton' type='submit' name='cancelar' value='cancelar'/>\n<br/>"); salida.print("</form>\n<br/>"); salida.print("<a href='/conexionjdbc/Usuario'>Formulario Sesión</a>"); salida.print("<div id='pie'>"); salida.print("<p> www.railsymas.com </p>"); salida.print("</div>"); salida.print("</div>\n"); salida.print("</body>\n<br/>"); salida.print("</html>"); } } |
