Saltar al contenido

¿La sesión y sessionScope son iguales en JSP EL?

Posterior a consultar con especialistas en este tema, programadores de varias ramas y profesores hemos dado con la respuesta a la interrogande y la dejamos plasmada en esta publicación.

Con el lenguaje de expresión (EL), los elementos de alcance son mapas de valor de attributes en los objetos a los que se refieren. Por ejemplo, requestScope es una representación de mapa de valores en el objeto de solicitud. Esto se explica con bastante detalle en esta página: Java Servlet y JSP. Si lee las secciones de EL, notará un punto sobre la solicitud frente al alcance de la solicitud aquí: RequestScope NO es un objeto de solicitud.

Recomendaría leer esta página para obtener una mejor comprensión de servlet/jsp en general.

En cuanto a cómo ActionContext se relaciona con estos elementos, en realidad es un contenedor utilizado por struts para encapsular el servlet. Puede leer más detalles al respecto aquí: Acceder a la aplicación, sesión, solicitar objetos.

Ha habido algunas referencias a valores implícitos dados aquí, pero siento que simplemente decir que es implícito realmente no explica mucho. Cuando está utilizando EL para acceder a las variables de servlet, puede declarar explícitamente a qué ámbito desea hacer referencia, como:

 $requestScope.myVariable

También puede hacer referencia implícitamente al omitir el alcance:

 $myVariable

Ahora, el problema que puede surgir aquí es que las variables con el mismo nombre pueden causar colisión. EL comprobará los valores implícitos en un orden específico: pageScope, requestScope, sessionScope y applicationScope, param, paramValues, header, headervalues, initParam, cookie, pageContext. Lo que esto significa es que si tiene una variable en el ámbito de la solicitud con el mismo nombre que una variable en el ámbito de la sesión o de la aplicación, por ejemplo, se hará referencia al valor del ámbito de la solicitud.

Por defecto page, request, session and application scope los objetos están disponibles para las páginas JSP. Entonces puede acceder usando la sintaxis EL.

Y la siguiente tabla muestra los objetos IMPLÍCITOS disponibles para EL.

       Implicit object            Description
1.     pageScope        Scoped variables from page scope
2.     requestScope     Scoped variables from request scope
3.     sessionScope     Scoped variables from session scope
4.     applicationScope Scoped variables from application scope
5.     param            Request parameters as strings
6.     paramValues      Request parameters as collections of strings
7.     header           HTTP request headers as strings
8.     headerValues     HTTP request headers as collections of strings
9.     initParam        Context-initialization parameters
10.    cookie           Cookie values
11.    pageContext      The JSP PageContext object for the current page

Por lo tanto, session y sessionScope son iguales pero difieren en el contexto en que se usan. Más específicamente session is object y sessionScope is map (key, value) of Attribute and its value.

  • Si usted dice $session.sessionAttr se refiere al objeto de sesión disponible para la página JSP.
  • Si usted dice $sessionScope.sessionAttr se refiere al objeto de sesión IMPLÍCITO disponible para EL.
  • O si solo dices $attrName buscará attrName en todos los ámbitos, desde la página hasta el ámbito de la aplicación.

  1. sesión, solicitud, aplicación son los realmente HttpSession,HttpServletRequest y ServletContext objetos mientras sessionScope, requestScope and applicationScope proporcionar acceso a toda la sesión, la solicitud y el ámbito de la aplicación attributes.

Puede decir que applicationScope > sessionScope > requestScope.

  • alcance de la aplicación attributes será accesible a todas las sesiones, todas las solicitudes a través de las aplicaciones web. Estos attributes mantenerse vivo mientras la aplicación esté viva
  • ámbito de sesión attributes será accesible para todas las solicitudes a través de la HttpSession actual. Estos attributes mantenerse vivo mientras la sesión esté viva
  • solicitudAlcance attributes será accesible solo desde la solicitud actual. Una vez que se completa la respuesta, desaparecen.

Si tienes algún titubeo o disposición de aumentar nuestro artículo eres capaz de añadir una apostilla y con mucho gusto lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *