0

Portlet Development Best Practices (5/12) - Manejo de la Sesión

Posted by Jose Luis Manrique on 20:13 in , , ,
En la anterior entrega tocamos el tema del manejo de la configuración en el portal ,las estrategias para utilizar efectivamente cada una de las facilidades de los Portlets y los motivos por los cuales usar uno u otro.

En este post trataremos un tema muy delicado el cual es el manejo de la sesión de nuestra aplicación sin mas preámbulos empiezo a detallar cada una de las buenas practicas al respecto.
  • Limitar el uso de la sesión del portlet. La recomendación es muy explicita para este caso no se debe de abusar del uso de la sesión, no cualquier dato debe ser almacenado en esa área. En este punto tenemos dos ejemplos el primero es el almacenar un objeto que es muy costoso en ser construido/obtenido en este caso si recomiendo que sea almacenado en sesión para que no se incurra en el costo de tener que crear un nuevo objeto por cada request (render y/o action) y el segundo caso es de un objeto que puede ser generado en cualquier momento y no implica mucho costo para el sistema (un listado de tipos de documentos) estos no tendrían por que ser almacenados en la sesión puesto que aun se puede asumir el costo de su construcción. Si eres de los que le gusta usar la sesión para todo pues es momento que analices que debe de ir o no dentro de tal forma que evitas los famosos java.lang.OutOfMemoryError.
  • Evitar el uso de la sesión si es que el portlet puede ser accedido por anónimos. Tiene mucho sentido puesto que la sesión debe ser usada justamente cuando el usuario se ha conectado a la aplicación previa validación de usuario y contraseña. Si el portlet esta disponible para cualquier usuario eso quiere decir que la información que se muestra no es sensible por lo tanto algunos datos se podrían manejar usando campos ocultos (inputs hidden dentro del formulario). Por el momento no me ha tocado crear un portlet para usuarios anónimos pero es mas que seguro que tendré en cuenta esta recomendación para futuros desarrollos.
  • Siempre usar PortletRequest.getPortletSession() para obtener una sesión valida. Hasta el momento no se como obtener una nueva sesión que no sea de esa forma pero si la hay no debería usarse puesto que se podría estar obteniendo un valor invalido.
Finalmente podemos llegar a la conclusión que el uso de la sesión debe de realizarse con mucho cuidado y siempre teniendo en cuenta algunas consideraciones previas.

Para la siguiente entrega se tocará el tema de la internacionalización el cual tiene como objetivo mostrarnos algunas sugerencias para hacer que nuestro portlet muestre contenido dependiendo del idioma del cliente.

0 Comments

Publicar un comentario

Copyright © 2009 Autumn All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.