miércoles, 26 de septiembre de 2012

Scopes en Java Web


Opciones para recordar información

Dentro de la aplicación web tenemos tres ámbitos diferentes para guardar información.

El ámbito más reducido es el formado por los atributos que mantenemos en el objetoHttpServletRequest. Los objetos almacenados de este modo sólo duran mientras se procesa una petición del usuario, petición que a veces se va redirigiendo entre distintos Servlets o recursos estáticos del servidor. Una vez que hemos terminado de procesar la petición, el objeto HttpServletRequest y todos sus atributos se destruyen.


El siguiente ámbito sería el dado por la sesión del usuario. Los objetos que mantenemos con atributos de la sesión permanecerán en ella hasta que la sesión se invalide, o bien porque el usuario ha permanecido demasiado tiempo inactivo, o bien porque la hemos invalidado programáticamente. Tanto los objetos que se almacenan en la petición, como los que se almacenan en la sesión del usuario sólo son accesibles para el propio usuario. No es posible que otro usuario acceda de ningún modo alguno de estos objetos.

El tercer ámbito es el dado por contexto de la aplicación web. Los objetos almacenados en dicho contexto son accesibles a todos los componentes de la aplicación web, independientemente del usuario que esté accediendo a dicho componente. Esto convierte al contexto en una forma sencilla de almacenar información global para toda la aplicación, como por ejemplo un catálogo de productos que va a ser compartido por varios Servlets.
Una cuarta opción para "recordar" información son las cookies. En este caso, también sólo se pueden emplear para recordar información sobre un único usuario, y no para compartir información entre varios usuarios.