EL 表达式可以用来获取 JSP 页面中四种常见域对象的值,包括 pageScope、requestScope、sessionScope 和 applicationScope。这些域对象分别对应着不同的作用域,其生命周期也不同。
1、pageScope
pageScope 指的是当前页面(JSP)的作用域,即当前页面中定义的变量。可以通过 ${pageScope.变量名称} 的方式来获取变量的值。
<%-- 在 JSP 中定义了变量 message --%>
<c:set var="message" value="hello world" />
<%-- 使用 EL 表达式获取变量 message 的值 --%>
<p>${pageScope.message}</p>
2、requestScope
requestScope 指的是请求作用域,即一次请求中所有 JSP 页面之间共享的数据。可以通过 ${requestScope.变量名称} 的方式来获取变量的值。
<%-- 在 Servlet 中设置了属性 message --%>
request.setAttribute("message", "hello world");
<%-- 使用 EL 表达式获取属性 message 的值 --%>
<p>${requestScope.message}</p>
3、sessionScope
sessionScope 指的是会话作用域,即一个用户在一次会话中共享的数据。可以通过 ${sessionScope.变量名称} 的方式来获取变量的值。
<%-- 在 Servlet 中设置了属性 message --%>
HttpSession session = request.getSession();
session.setAttribute("message", "hello world");
<%-- 使用 EL 表达式获取属性 message 的值 --%>
<p>${sessionScope.message}</p>
4、applicationScope
applicationScope 指的是应用程序作用域,即整个应用程序中所有用户共享的数据。可以通过 ${applicationScope.变量名称} 的方式来获取变量的值。
<%-- 在 ServletContext 中设置了属性 message --%>
ServletContext application = request.getServletContext();
application.setAttribute("message", "hello world");
<%-- 使用 EL 表达式获取属性 message 的值 --%>
<p>${applicationScope.message}</p>