JSP中的EL表达式(重要)
在JavaServer Pages (JSP) 和Servlet环境中,Expression Language (EL) 提供了一种简单直观的方式来访问和操作作用域中的变量。以下是在JSP和Servlet中使用EL表达式取值的常见方式大全:
${}
重要指定
JSP中的EL表达式取值方式:
- 访问ServletRequest(request)作用域中的属性:
<!-- 获取request作用域中的属性值 -->
<p>Request Attribute: ${requestScope.attributeName}</p>
- 访问HttpSession(session)作用域中的属性:
<!-- 获取session作用域中的属性值 -->
<p>Session Attribute: ${sessionScope.sessionAttributeName}</p>
- 访问ServletContext(application)作用域中的属性:
<!-- 获取application作用域中的属性值 -->
<p>Application Attribute: ${applicationScope.applicationAttributeName}</p>
- 访问页面(page)作用域中的属性(局部变量):
<!-- 在scriptlet中定义局部变量 -->
<%
pageContext.setAttribute("pageVar", "Value");
%>
<!-- 获取page作用域中的属性值 -->
<p>Page Scope Variable: ${pageVar}</p>
- 访问隐式对象:
-
请求参数:
<!-- 获取请求参数 --> <p>Parameter Value: ${param.parameterName}</p>
-
Cookie值:
<!-- 获取Cookie值 --> <p>Cookie Value: ${cookie.cookieName.value}</p>
-
Header值:
<!-- 获取Header值 --> <p>Header Value: ${header.headerName}</p>
-
初始化参数(对于Servlet或Filter配置时设置的初始化参数):
<!-- 获取Servlet初始化参数 --> <p>Init Parameter: ${initParam.initParamName}</p>
- EL算术、逻辑和关系运算符:
<!-- 算术运算 -->
<p>Sum: ${1 + 1}</p>
<!-- 关系运算 -->
<p>Comparison: ${user.age > 18 ? 'Adult' : 'Minor'}</p>
<!-- 逻辑运算 -->
<p>Logical AND: ${empty param.emptyField && param.nonEmptyField eq 'yes' ? 'True' : 'False'}</p>
Servlet中使用EL表达式(间接使用):
Servlet本身并不能直接使用EL表达式,但你可以通过RequestDispatcher的forward或include方法将处理传递给JSP页面,在JSP页面中使用EL表达式。在Servlet中准备数据,然后转发到JSP页面进行渲染:
// 在Servlet中设置属性
request.setAttribute("attributeName", "AttributeValue");
// 转发到JSP页面
RequestDispatcher dispatcher = request.getRequestDispatcher("/path/to/page.jsp");
dispatcher.forward(request, response);
然后在page.jsp
中就可以通过EL表达式访问上述设置的属性:
<!-- 在JSP中获取Servlet设置的属性 -->
<p>Served from Servlet: ${attributeName}</p>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!