Sesiones j2ee proyecto web eclipse

0

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

formulariosesion

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

formulariosesion2

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

formulariosesion3

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

formulariosesion4

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&oacute;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&oacute;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>");
	}   	  	    
}

Comentarios cerrados automáticamente al pasar más de un año