JavaWeb —— EL表达式
来源:互联网 发布:梯级水电站优化调度 编辑:程序博客网 时间:2024/06/06 23:19
JSP中可以使用EL(Expression Language)表达式。
EL表达式是用"${}"括起来的脚本,用来更方便地读取对象。
EL表达式写在JSP的HTML代码中,而不能写在JSP脚本中。
注意:旧版本的Servlet规范不支持EL表达式。例如Tomcat4.x以及之前的版本都不支持EL表达式。
有效表达式
有效表达式可以包含文字、操作符、变量(对象引用)和函数调用。
文字
JSP表达式语言定义可在表达式中使用的以下文字:
文字
文字的值
Boolean
true和 false
Integer
与 Java类似。可以包含任何正数或负数,例如 24、-45、567
Floating Point
与 Java类似。可以包含任何正的或负的浮点数,例如 -1.8E-45、4.567
String
任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符作为转义序列。必须注意,如果在字符串两端使用双引号,则单引号不需要转义。
Null
null
操作符
JSP表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:
术语
定义
算术型
+、-(二元)、*、/、div、%、mod、-(一元)
逻辑型
and、&&、or、||、!、not
关系型
==、eq、!=、ne、、gt、<=、le、>=、ge。可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文字进行比较。
空
空操作符是前缀操作,可用于确定值是否为空。
条件型
A ?B :C。根据 A赋值的结果来赋值 B或 C。
隐式对象
JSP表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:
pageContext
JSP页的上下文。它可以用于访问JSP隐式对象,如请求、响应、会话、输出、servletContext等。例如,${pageContext.response}为页面的响应对象赋值。
此外,还提供几个隐式对象,允许对以下对象进行简易访问:
术语
定义
param
将请求参数名称映射到单个字符串参数值(通过调用ServletRequest.getParameter (String name)获得)。getParameter (String)方法返回带有特定名称的参数。表达式$(param.name)相当于request.getParameter (name)。
paramValues
将请求参数名称映射到一个数值数组(通过调用ServletRequest.getParameter (String name)获得)。它与param隐式对象非常类似,但它检索一个字符串数组而不是单个值。表达式${paramvalues. name)相当于request.getParamterValues(name)。
header
将请求头名称映射到单个字符串头值(通过调用ServletRequest.getHeader(String name)获得)。表达式${header. name}相当于request.getHeader(name)。
headerValues
将请求头名称映射到一个数值数组(通过调用ServletRequest.getHeaders(String)获得)。它与头隐式对象非常类似。表达式${headerValues. name}相当于request.getHeaderValues(name)。
cookie
将cookie名称映射到单个cookie对象。向服务器发出的客户端请求可以获得一个或多个cookie。表达式${cookie. name .value}返回带有特定名称的第一个cookie值。如果请求包含多个同名的cookie,则应该使用${headerValues. name}表达式。
initParam
将上下文初始化参数名称映射到单个值(通过调用ServletContext.getInitparameter(String name)获得)。
除了上述两种类型的隐式对象之外,还有些对象允许访问多种范围的变量:
术语
定义
pageScope
将页面范围的变量名称映射到其值。例如,EL表达式可以使用${pageScope.objectName}访问一个JSP中页面范围的对象,还可以使用 ${pageScope .objectName. attributeName}访问对象的属性。
requestScope
将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL表达式可以使用${requestScope. objectName}访问一个JSP请求范围的对象,还可以使用 ${requestScope. objectName. attributeName}访问对象的属性。
sessionScope
将会话范围的变量名称映射到其值。该对象允许访问会话对象的属性。例如:${sessionScope. name}
applicationScope
将应用程序范围的变量名称映射到其值。该隐式对象允许访问应用程序范围的对象。
类别
标识符
描述
示例
请求参数
param
包含所有参数的Map。可以获取参数(返回String)
例如${param.foo}
${param[‘foo’]}
paramValues
包含所有参数的Map。可以获取参数数组(返回String[])
当提交多个参数,例如el.jsp?a=first&a=second,当提交的参数a为多个值{“first”,”second”}。
使用param只能获取第一个值,而使用param只能获取第一个值,而使用paramValues能够获取到其他的值。${params.a[0]}将输出”first”,${param.a[1]}将输出”second”
头信息
Header
包含所有头信息的Map。可以获取头信息(返回String)
例如:${header.host}可能返回localhost:8080
头信息
headerValues
包含所有头信息的Map。可以获取头信息数组(返回String[])
${header.host[0]}。当头信息为数组时可以取多个值。
Cookie
cookie
包含所有Cookie的Map,Key为Cookie的name属性。
使用<% response.addCookie(new Cookie(“user”,”hello”));%>设置Cookie后,${cookie.user}返回该Cookie,而${cookie.user.value}返回”hello”,${cookie.user.name}返回”user”
初始化参数
ininParam
包含所有初始化参数的Map。可以获取初始化参数。
${initParam.encoding}
pageScope
包含page作用域内变量的Map
使用<jsp:useBean id=”person”class=”cn.itcast.bean.Person” scope=”page”/>声明pageScope范围内的Person对象后,${pageScope.person.age}将可以输出讠对象的age属性值
requestScope
包含request作用域变量的Map
sessionScope
包含session作用域内变量的Map
applicationScope
包含application作用域内变量的Map
pageContext
包含页面内的变量的Map,包含request、response、page、application、config等隐式对象
${pageContext.reqeust.remoteAddr}将返回客户端IP地址。
${person.age}
page、reqeust、session、application依次查找
- JavaWeb —— EL表达式
- JavaWeb —— EL表达式
- 深入体验JavaWeb开发内幕——EL表达式之一
- 深入体验JavaWeb开发内幕——EL表达式之一
- 深入体验JavaWeb开发内幕——EL表达式之一
- javaweb学习总结(二十九)——EL表达式
- #笔记#圣思园 JavaWeb 第43讲——EL表达式
- javaweb学习总结(二十九)——EL表达式
- javaweb学习总结(二十九)——EL表达式
- javaweb学习总结(二十九)——EL表达式
- javaweb学习总结(二十九)——EL表达式
- javaweb学习总结(二十九)——EL表达式
- JavaWeb学习总结(二十九)——EL表达式
- JavaWeb入门实战—EL表达式&JSTL标签
- javaweb之EL表达式
- javaweb el表达式
- JavaWeb-EL表达式
- JavaWeb-EL表达式
- 第一个C++调用Cplex程序
- SQLPLUS环境命令
- HTML入门教程
- servlet监听器的使用
- vs对话框位置
- JavaWeb —— EL表达式
- JAVA代码:通过Socket读取返回的数据
- python文件处理
- iOS应用崩溃日志揭秘
- hudson中subversion HEAD check out 的问题及疑惑
- 认识w3wp.exe进程,从根本上解决占用资源较大问题
- Hibernate,JPA 对象关系映射之简单映射策略
- 书写简易SQL
- mongoDB的shell操作