JSF ViewState y sus opciones

¿Qué es el JSF ViewState? . JSF es una tecnología basada en controles que permite a los desarrolladores trabajar de una forma sencilla con controles muy complejos manteniendo el estado entre las diferentes peticiones HTTP (stateless). En muchas situaciones la forma de trabajar es muy transparente pero hay casos en los que es conveniente saber como el framework se comporta de forma exacta. Para ello es necesario conocer el concepto de  ViewState. Este concepto hace referencia a la estructura de controles que tenemos en una página concreta y a como JSF almacena su estado para posterior revisión.

JSF ViewState

JSF ViewState Sessiones

Para almacenar el estado de cada página, JSF usa objetos ViewState que almacena en  Session , por cada usuario se almacena el estado de las páginas con las que esta trabajando en ese momento.

JSF ViewState Session

 

Esto en principio es totalmente transparente para el desarrollador. Sin embargo existen situaciones en las cuales puede acabar generando presión sobre le memoria del servidor ya que cada usuario almacena varias vistas. En este tipo de situaciones JSF se puede parametrizar para que almacene el estado de la vista en el cliente.

JSF ViewStateField Cliente

Para ello se apoyará en el campo oculto de  ViewState que incrementará considerablemente su tamaño .

JSFViewStateField

Para modificar el comportamiento de JSF ViewState es suficiente con añadir al web.xml un nuevo parámetro de contexto y especificar si el estado se almacena en servidor (server)  o en cliente (client)

<context-param>
 <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
 <param-value>client</param-value>
</context-param>

No hay solución mejor o peor todo depende de nuestras necesidades. Almacenar el estado en cliente implica un mayor traficode red y es algo menos seguro.

Otros artículos relacionados : JSF Ajax , JSF HTML5 , JSF Seguridad y Roles

It's only fair to share...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

About Cecilio Álvarez Caules

Cecilio Álvarez Caules Sun Certified Enterprise Architech (J2EE/JEE).

6 Responses to JSF ViewState y sus opciones

  1. stanley 3 Septiembre, 2015 at 17:16 #

    Interesante artículo. Cecilio cuando dices al final cuando concluyes el uso de este parámetro de contexto mencionas que hay menor tráfico de red pero también mencionas que es “y es algo menos seguro.” a que te refieres explícitamente o en que sentido es menos seguro??

    Gracias de antemano excelente blog, no me pierdo tus entradas son muy interesantes!

    • Cecilio Álvarez Caules 4 Septiembre, 2015 at 10:37 #

      gracias 🙂

  2. Pedro Díaz 4 Mayo, 2016 at 0:07 #

    Muy interesante el informe y además es intuitivo con los esquemas gráficos. Un saludo.

    • Cecilio Álvarez Caules 5 Mayo, 2016 at 16:54 #

      gracias

  3. Bernardo 22 Agosto, 2016 at 23:35 #

    Muy bueno el articulos amigo, comprensivo sobre todo.. Gracias por el aporte

    • Cecilio Álvarez Caules 23 Agosto, 2016 at 8:22 #

      gracias 🙂

Deja un comentario