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.
- sesión, solicitud, aplicación son los realmente
HttpSession
,HttpServletRequest
yServletContext
objetos mientrassessionScope, 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.