Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/03/2009, 12:39
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Respuesta: Variables globales en jsp

Para ser un poco más exactos, las variables declaradas dentro de <%! %> no son estáticas, y tampoco se crea una instancia de la clase, variables y métodos por sesión.

Existe una sola instancia de la JSP (a nivel de clase es un servlet) y las variables declaradas entre <%! %> son miembros de esa instancia (variables a nivel de instancia), en cambio las que se declaran dentro de <% %> son variables locales del metodo doService() del servlet.

Lo que pasa en cada petición, es que un Thread distinto* ejecuta el método doService sobre la instancia única, y por lo tanto las variables locales entre peticiones son diferentes (cada Thread tiene su propia copia) y las variables de instancia son compartidas (todos los Threads ven la misma).

Eso es lo que ocurre y por que unas peticiones pueden interferir con unas variables y no con otras. Las sesiones no afectan en este caso para nada.

S!

* Para aun más ser exactos los Threads se pueden reutilizar, pero a efectos prácticos de una aplicación se puede considerar como si en cada petición fuesen diferentes.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.