小饶学编程之JAVA SE第二部分——Java Web 技术:14 EL表达式

一、EL表达式

EL(Expression Language)目的:为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在JSP中简化表达式的方法,让JSP的代码更加简化。

禁用 EL 计算的语法为(页面中):<%@ page isELIgnored =“true|false” %>

或者web.xml(全局)

<jsp-config>
	<jsp-property-group>
	<url-pattern>*.jsp</url-pattern>
	<el-ignored>true</el-ignored>
	</jsp-property-group>
</jsp-config>

二、EL中的11个隐式对象

隐式对象类型说明
pageContextjavax.servlet.ServletContext表示此JSP的PageContext
pageScopejava.util.Map取得Page范围的属性名称所对应的值
requestScopejava.util.Map取得Request范围的属性名称所对应的值
sessionScopejava.util.Map取得Session范围的属性名称所对应的值
applicationScopejava.util.Map取得Application范围的属性名称所对应的值
paramjava.util.Map如同ServletRequest.getParameter(String name)
paramValuesjava.util.Map如同ServletRequest.getParameterValues(String name)
headerjava.util.Map如同ServletRequest.getHeader(String name)
headerValuesjava.util.Map如同ServletRequest.getHeaders(String name)
cookiejava.util.Map如同HttpServletRequest.getCookies()
initParamjava.util.Map如同ServletContext.getInitParameter(String name)

三、EL表达式的作用

3.1运算符

​ + - * / div 加减乘除

操作符描述操作符描述
+> gt测试是否大于
-<= le测试是否小于等于
*>= ge测试是否大于等于
/ div&& and测试逻辑与
% mod取模|| or测试逻辑或
== eq测试是否相等! not测试取反
!= ne测试是否不等empty测试是否空值
< lt测试是否小于. []取值

3.2参数中取值

​ 可以访问参数中取值(上一页面的表单或查询字符串的参数)。用法如下:

${param . name} 相当于request.getParameter (name)

${paramValues. name} 相当于 request.getParamterValues(name)


3.3四个作用域中的存储数据

${pageScope .objectName. attributeName} 或者 ${pageScope .objectName[attributeName]}

${requestScope. objectName. attributeName} 或者 ${requestScope.objectName[attributeName]}

${sessionScope. objectName. attributeName} 或者 ${sessionScope.objectName[attributeName]}

${applicationScope. objectName. attributeName} 或者 ${applicationScope.objectName[attributeName]}

其中4个作用域对象pageScope 、requestScope、sessionScope、applicationScope可以省略,会依次从前往后获取。

取值既可以用.号也可以用[]取值,如果要取的属性值中有特殊符号如.或者-,则一定要使用[]的方式。

u s e r . M y − N a m e 应 当 改 为 { user. My-Name}应当改为 user.MyName{user[“My-Name”]}

3.4获取请求头中属性值

​ 将请求头名称映射到单个字符串头值,其中header为EL中的隐式对象。如:
​ ${header.host} 相当于request.getHeader(“host”)
​ ${header[“cache-control”]} 相当于request.getHeader(“cache-control”)

将请求头名称映射到一个数值数组,其中的headerValues为EL中的隐式对象。如:

${headerValues. name} 相当于 request.getHeaderValues(name)

3.5获取cookie中的属性值

${cookie. name .value} 返回带有特定名称的第一个 cookie 值。如果请求包含多个同名的 cookie,则应该使 用 ${headerValues. name} 表达式。如:

​ ${cookie.JSESSIONID.value}

3.6获取初始化参数值

​ 将上下文初始化参数名称映射到单个值,其中initParam为EL中的隐式对象。如:

${initParam.encoding}

前提是在web中配置初始化参数

<context-param>

 	<param-name>encoding</param-name >

	<param-value>utf-8</param-value >

</context-param>

3.7JSP隐式对象

JSP 页的上下文,它可以用于访问 JSP 隐式对象。通过pageContext可以访问除自身以外的其它8个JSP隐式对象。

${pageContext.request}

${pageContext.response }

${pageContext.session }

${pageContext.exception}

${pageContext.page}

${pageContext.out}

${pageContext.servletConfig}

${pageContext.servletContext}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝皮蛋瘦肉粥的小饶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值