EL表达式的隐式对象

合集下载

el表达式写法

el表达式写法

el表达式写法
El表达式是一种用于模板引擎和视图中的动态表达式语言,用于在模板中嵌入动态数据。

以下是一些常见的El表达式的写法:
1. 访问属性:
- `${}`:访问对象`user`的`name`属性。

- `${user.address.city}`:访问嵌套属性。

2. 访问列表和映射:
- `${list[0]}`:访问列表`list`的第一个元素。

- `${map['key']}`:访问映射`map`中键为`key`的值。

3. 调用方法:
- `${user.getName()}`:调用对象`user`的`getName()`方法。

- `${utils.format(date)}`:调用静态方法`utils.format()`。

4. 条件判断:
- `${user.age > 18 ? '成年人' : '未成年人'}`:根据条件返回不同的值。

5. 迭代列表:
- `<c:forEach items="${users}" var="user">`:迭代列表`users`中的每个元素,用变量`user`引用每个元素。

6. 计算表达式:
- `${5 + 3}`:计算表达式的结果。

7. EL隐式对象:
- `${pageContext.request.contextPath}`:访问EL隐式对象中的属性,如访问请求的上下文路径。

这些只是El表达式的一小部分写法,实际使用中还有更多的写法和用法,可以根据需要进一步学习和掌握。

8_EL表达式

8_EL表达式

EL关系运算符 ==(eq) !=(ne)
<(lt)
>(gt)
<=(le)
>=(ge)
EL关系运算符演示
<body> \${1==1 }=${1==1 }
<br>
\${1 eq 1 }=${1 eq 1 } <br>
\${"1" eq "1" }=${"1" eq "1" }
EL运算符 EL算术运算符 EL关系运算符
逻辑运算符
empty运算符
条件运算符
3元运算符
EL算术运算符 + -
*
/(div)
%(mod)
EL算术运算符演示
<body> \${4+2 }=${4+2 } <br> \${4-2 }=${4-2 } <br> \${4*2 }=${4*2 } <br> \${4/2 }=${4/2 } <br> \${4 div 2 }${4 div 2 } <br> \${5%2 }=${5%2 } <br> \${5 mod 2 }=${5 mod 2 } <br> </body>
EL表达式
主讲:宁恒生
主要内容 EL概述 EL隐式对象
EL运算符
EL概述 EL是Expression Language的缩写 是JSTL为方便存取数据而定义的语言,必须在 JSTL中使用 容器的版本必须为jsp2.0/Servlet2.4才支持EL,并 把EL纳入jsp的规范中 Tomcat必须5.0以上

EL表达式

EL表达式

EL表达式语法:${ EL expression}其中:$表示EL表达式的开始。

EL expression指定表达式。

一、JSP EL表达式可用于如下几种方式。

1 静态文本:包含EL表达式,其值在运行时计算出来。

如: ${8+5}2 标准标签和自定义标签属性:帮助显示网页上的动态内容。

JSP提供一些标准标签,<jsp:useBean>、<jsp:include>等。

自定义标签是由用户使用taglib指令编写的。

EL表达式可以作为一个值传递给上述标签的属性。

表达式在运行时计算,结果值将作为属性值进行传递。

如:<%pageContext.setAttribute("color","#ffccff");%><body bgcolor="${pageScope.color}">7+8=${7+8}</body>3 JavaBean与EL表达式:使用EL表达式可以简洁地读出JavaBean的属性值。

传统的JSP通常使用如下方法访问JavaBean:<jsp:getProperty na me=”myBean” property=”name”/><%=myBean.getName()%>EL表达式则简化为:${}二、启用/禁用EL表达式<%@ page isELIgnored=”true|false” %>为true时,支持EL表达式计算。

为false时,不支持EL表达式计算。

三、变量JSP表达式${product}的计算结果与调用pageContext.findAttribute(“product”)一样,EL表达式中的变量可以引用存储在标准范围(如:page request session application)中的属性。

点运算符(.)和”[]”用于获取变量的值。

el语句基本用法

el语句基本用法

el语句基本⽤法EL(Expression Language)⼀、EL操作符语法:${EL表达式}11. “.”操作符⽤来访问对象的某个属性,如${}。

2. “[ ]”操作符也可⽤来访问对象的某个属性,如${user[‘name’]}。

“[ ]”操作符其他功能:(1)当属性名中包含特殊字符如“.”或“-”等的情况下,就不能使⽤“.”操作符来访问,这时只能使⽤“[ ]”操作符。

(2)根据索引值访问数组中的元素使⽤“[ ]”操作符,如${arr[1]}。

(3)使⽤变量实现动态访问,如${user[x]},x是⼀个变量,改变x即可。

1.1、算术操作符这⾥只测试了“+”操作符,“-”、“*”、“/”或div、“%”或mod请⾃⾏测试。

<!-- “+”操作符 -->${a1+a2+a3 }<br><!-- 输出:60 -->${1+1 }<br><!-- 输出:2 -->${'1'+1.1 }<br><!-- 输出:2.1 -->${"1"+1 }<br><!-- 输出:2 -->${bbbbbsdcksnvjnds+1 }<br><!-- 输出:1 -->\${"bbbbbsdcksnvjnds"+1 }<!-- 报异常 -->1.2、关系操作符1.3、逻辑操作符1.4、empty操作符<!-- empty操作符 -->${empty s }<br><!-- 输出:true -->${!empty s }<br><!-- 输出:false -->${not empty s }<br><!-- 输出:false -->${!not empty s }<br><!-- 输出:true -->总结:若变量 s为null,或长度为零的String,或size为零的集合,则${ empty s }返回的结果为true,${ not empty s }或${ ! empty s }返回的结果为false。

第06章:EL表达式和JSTL

第06章:EL表达式和JSTL
%>
从最小的属性范围中查 找key属性,如果找到, 则不再继续查找
属性值key=${key};<br>
request范围内的key=${requestScope.key};<br> session范围内的key=${sessionScope.key};<br> session范围内的key1=${key1}; 直接从指定的属性范围 内查找属性名为key的属 性值
set 标签用于给变量 设置值和作用范围
插入使用核心标签的指令
<%@ taglib uri="/jsp/jstl/core" prefix="c"%>
<body> <c:set var= "example" value="${100+1}" scope="session" />
${er[1]} 得到集合中第二位的对象
EL表达式的简单应用
输出姓名显示
<% Map names = new HashMap(); names.put("one","LiYang"); names.put("two","WangHua"); request.setAttribute("names",names); %> 姓名:${names.one}<br/> 姓名:${names["two"] }<br/>
通用标签
<c:set>含有的属性包括value、var、scope、target和property等,这

EL表达式与JSTL标签库(一)

EL表达式与JSTL标签库(一)

EL表达式与JSTL标签库(⼀)1、JSTL概述JSTL标签库由标签库和EL表达式两个部分组成。

JSTL标准标签库(Java Server Page Standard Tag Library),⽤来解决创建的页⾯的操作问题,包括输⼊输出、条件测试、遍历集合。

2、EL表达式语法EL表达式的主要作⽤:获取数据。

EL表达式主要⽤于替换JSP页⾯中的脚本表达式,从Web作⽤域中获取Java对象,获取数据,包括访问Javabean的属性、List集合、Map集合、数组等。

执⾏运算:利⽤EL表达式可以在JSP页⾯中执⾏⼀些基本的关系运算、逻辑运算和算术运算,以在JSP页⾯完成⼀些简单的逻辑操作。

获取Web开发常⽤对象。

利⽤EL表达式的隐式对象,可以轻松获得Web常⽤对象的引⽤,从⽽获取这些对象中的数据。

EL表达式的格式: ${expression },使⽤${⽂本时需要变为\${[]和.运算符 EL表达式可以返回任意类型的值。

EL取值结果为⼀个带有属性的对象时,使⽤[]或.来访问其属性,实质是通过getter⽅法来访问其属性。

访问形式如下:${object["propertyName"]}${object.propertyName} propertyName不是有效的java变量名时,只能使⽤[]⽅式访问。

如${header["accept-language"]}。

如果访问对象的属性也是⼀个对象,并且也带有属性,此时既可以使⽤[],也可以使⽤.运算符来访问第⼆个对象的属性。

${pageContext.request.contextPath }3、EL表达式的隐式对象 EL表达式中,存在11个隐式对象。

隐式对象描述例⼦pageContext JSP上下⽂对象。

它可访问JSP隐式对象。

${pageContext.request.contextPath }param⼀个包含所有请求参数的Map。

elpress表达式

elpress表达式

EL表达式(Expression Language)是一种在JSP页面中用于获取数据、执行运算、调用Java方法的表达式。

它简化了获取数据的操作,使得在JSP页面中获取数据更加方便。

EL表达式的语法格式为:${标识符},其中“标识符”可以是任何有效的Java变量名或方法名。

EL表达式的作用是从Servlet中获取数据,并将数据插入到JSP页面中。

当JSP 页面被请求时,Servlet将处理所有EL表达式并返回结果,然后将结果插入到JSP页面中。

EL表达式有11个隐式对象,可以在表达式中使用这些对象来获取数据。

例如,request 对象可以用于获取请求参数,session对象可以用于获取会话属性等。

除了获取数据之外,EL表达式还可以执行算术运算、逻辑运算和字符串操作等。

例如,${1+2}将返回3,${true||false}将返回true,${"hello"}将返回字符串“hello”。

最后,EL表达式还可以调用Java方法。

例如,${fn:length("hello")}将调用Java中的length()方法来计算字符串“hello”的长度,并返回5。

总之,EL表达式使得在JSP页面中获取数据更加简单、方便和直观。

el

el

调用函数
<%@ page language="java"%> <%@ taglib uri="WEB-INF/test.tld" prefix="test"%> ${test:showHello()}
总结


了解EL语法 了解EL隐式对: 查找Session范围内的变量名为user的变量。 ${er}
函数

在EL中,可以自己定义和使用函数。 定义函数的方法:
– – –
定义一个公开的静态的方法。 在tld文件中对方法进行声明。 在jsp中调用方法。
定义函数
public class Test { public static String showHello() { return "Hello"; } }
EL
目标

了解EL语法 了解EL隐式对象 了解函数的定义
EL简介

Expression Language 最初是JSTL 1.0为方便存取数据所定义的语言。 只能在JSTL 标签中使用。 JSP 2.0 之后,EL 已经正式纳入成为标准规范 之一。
引入EL 3-1
public class User { private String name; public String getName() { return name; } public void setName(String name) { = name; }
声明函数—test.tld
<function> <name>showHello</name> <function-class>test.Test</function-class> <function-signature> ng.String showHello() </function-signature> </function>

EL表达式语法详细介绍

EL表达式语法详细介绍

1.1 EL表达式:EL表达式规定为:eval-expression和literal-expression,同时E L表达式支持Compositeexpressions,很多EL表达式(eval-ex pressions和literal-expressions)被聚合在一起。

EL表达式被解析成数值表达式和方法表达式。

其中,取值表达式去引用一个值,而方法表达式则是关联一个方法。

一旦被解析之后,表达式能够被优化地计算一次或多次。

下面我们来分为:eval-expression、literal-expression、Compo siteexpressions来讲述1.1.1Eval-expressionEval-expression是以使用${expr}或者#{expr}结构的形式构成。

两种方式都是相同的方式,能很好被解析和计算,尽管它们在使用时有着不同的意义从技术方面来说。

从J2EE层规范协定来说,${expr}结构是直接计算而#{expr}结构则是延期计算,这种界定符号指出了在J2EE层两种表达式类型的语义上面的区别。

#{expr}这种界定符号被称为延迟计算是因为直到系统需要的时候才计算。

而${expr}这种界定符号则是在JSP页面编译的时候就计算,就是为什么叫做直接计算的原因。

1.1.1.1作为取值表达式的计算表达式当解析成一个取值表达式的时候,eval-expression能被计算成左值和右值。

若在EL中有等号操作符号出现,右值是类型出现在等号的右边的表达式,左值同理。

右值比如:<input type="text"value="${}"/><h:form>以下面这个例子为例:<h:inputTextid="email"value="#{checkOutFormBean.email}"size="25"maxlength="125"validator="#{checkOutFormBean.validateEmail}"/></h:form>当表单被提交的时候,在申请计算的阶段,Faces计算EL表达式#{checkOutFormBean.validateEmail}作为一个数据接口的引用,这个数据结构的数值是被一个表单相关联的输入参数设置。

El表达式和自定义标签

El表达式和自定义标签
示例:${prefix:method(params)}
在EL表达式中调用的只能是Java类的静态方法。
这个Java类的静态方法需要在WEB应用程序中专门进行配置,才可以被EL表达式调用。
EL自定义函数用于扩展EL表达式的功能,可以让EL表达式完成普通Java程序代码所能完成的功能
EL自定义函数开发与应用步骤
-----------------------------
DateFormat类
DateFormat 类可以将一个日期/时间对象格式化为表示某个国家地区的日期/时间字符串。
DateFormat 类除了可按国家地区格式化输出日期外,它还定义了一些用于描述日期/时间的显示模式的 int 型的常量,包括FULL, LONG, MEDIUM, DEFAULT, SHORT,实例化DateFormat对象时,可以使用这些常量,控制日期/时间的显示长度
param 表示一个保存了所有请求参数的Map对象
paramValues 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]
header 表示一个保存了所有http请求头字段的Map对象
headerValues 同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要
uri属性满足了以上的第二个要求。为每个自定义行为找到对应的类。这个uri包含了一个字符串,容器用它来定位TLD文件。在TLD文件中可以找到标签库中所有标签处理类的名称。
2、当web应用程序启动时,容器从WEB-INF文件夹的目录结构的META-INF搜索所有以.tld结尾的文件。也就是说它们会定位所有的TLD文件。对于每个TLD文件,容器会先获取标签库的URI,然后为每个TLD文件和对应的URI创建映射关系。

el表达式的11个内置对象

el表达式的11个内置对象

el表达式的11个内置对象 el表达式的11个内置对象分别是: ⾸先⼤家要知道el在查找数据的时候的域顺序是 page-->request-->session-->application; 从⼩到⼤,⽽直接${xxx} 这样就是全域查找,碰到那个xxx就返回值。

1.pageScope 作⽤:在pageContext域对象中去获取值; ⽤法:${pageScope.xxx} 2.requestScope 作⽤:在request域对象中去获取值; ⽤法:${requestScope.xxx} 3.sessionScope 作⽤:在session域对象中去获取值; ⽤法:${sessionScope.xxx} 4.applicationScope 作⽤:在application域对象中去获取值; ⽤法:${applicationScope.xxx} 5.param 作⽤:⽤于在页⾯接收参数,类似于request.getAttribute(),获取出来是单值,就是说你传个数组来,我只能接受到第⼀个值。

⽤法:${param.xxx} 6.paramValues 作⽤:同样⽤于在页⾯接收参数,同样类似于request.getAttribute(),获取出来就是多值。

⽤法:${param.xxx} 7.header 作⽤:⽤于获得请求头中的值; ⽤法:${header['User-Agent']}; 其实前⾯的都可以使⽤这种取值的⽅法,可是直接${xxx}⽐较⽅便,像${pageScope['xxx']}就好⿇烦。

在这⾥采⽤这种取值⽅法是因为在这个头名中的那个横线-,会被当作运算符去做运算,会出错,所以采⽤${header['User-Agent']}; ⽽不是${er-Agent}; 8.headerValues 同上。

9.initParam 作⽤:可以获得在web.xml中配置的<context-param>中的值; ⽤法:<context-param> <param-name>name</param-name> <param-value>tom</param-value> </context-param> ${}就可以得到tom了。

Java Web开发与实践第10章05 EL的隐含对象

Java Web开发与实践第10章05  EL的隐含对象

访问作用域范围的隐含对象
在EL中提供了4个用于访问作用域范围的隐含对象,即 pageScope、requestScope、sessionScope和 applicationScope。应用这4个隐含对象指定所要查找的标识 符的作用域后,系统将不再按照默认的顺序(page、request 、session及application)来查找相应的标识符。它们与JSP中 的page、request、session及application内置对象类似。只 不过这4个隐含对象只能用来取得指定范围内的属性值,而不 能取得其他相关信息。
访问环境信息的隐含对象
在EL中,提供了6个访问环境信息的隐含对象。下面将对这6 个隐含对象进行详细介绍。 1、 param对象 2、 paramValues对象 3、 header和headerValues对象 4、 initParam对象 5、 cookie对象
EL的隐含对象
本讲大纲: 1、页面上下文对象 2、访问作用域范围的隐含对象 3、访问环境信息的隐含对象
页面上下文对象
页面上下文对象为pageContext,用于访问JSP内置对象(例如 request、response、out、session、exception、page和等,但 不能用于获取application、config和pageContext对象)和 servletCon属性与对象的Getter方法相对应,在使用时,去掉方法名中 的get,并将首字母改为小字即可。

JSP第6章

JSP第6章

session.getAttribute("username")
${ername}

在EL中则使用下面的方法:

6.3.2 与输入有关的隐含对象

与输入有关的隐含对象有两个,即param和 paramValues,它们是EL中比较特别的隐含对象。 例如要取得用户的请求参数时,可以利用下列方 法:

request.getParameter(String name) request.getParameterValues(String name)

在EL中则可以使用param和paramValues两者来取 得数据:

${} ${}
6.3.3 其他隐含对象
6.3.3 其他隐含对象

3. initParam



initParam用于取得设定Web站点的环境参数 (Context)。 例如,一般的方法String userid = (String)application.getInitParameter(“userid”); 可以使用${erid}来取得名称userid。
6.3 EL表达式的隐式对象

在JSP中已经介绍了9个内置 对象,在EL表达式中共有11 个隐式对象,下面分别来讲 述这些隐式对象的用法。
6.3.1 与范围有关的隐含对象

与范围有关的EL隐含对象包含以下4个:

pageScope、requestScope、sessionScope和applicationScope
6.1 EL表达式概述


这个示例将在JSP页面显示为“1”。EL表达 式必须以“${XXX}”来表示,其中“XXX”部 分就是具体表达式内容,“${}”将这个表达 式内容包含在其中,作为EL表达式的定义。 这里只是展示EL表达式的基本用法,访问 此页面的效果如图6.1所示。

EL隐含对象

EL隐含对象

EL隐含对象1)与范围有关的隐含对象与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope;它们基本上就和JSP的pageContext、request、session和application一样;在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。

例如:我们要取得session中储存一个属性username的值,可以利用下列方法:session.getAttribute("username") 取得username的值,在EL中则使用下列方法${ername}2)与输入有关的隐含对象与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。

例如我们要取得用户的请求参数时,可以利用下列方法:request.getParameter(String name)request.getParameterValues(String name)在EL中则可以使用param和paramValues两者来取得数据。

${}${}其他隐含对象1)cookieJSTL并没有提供设定cookie的动作,例:要取得cookie中有一个设定名称为userCountry的值,可以使用${erCountry} 来取得它。

2)header和headerValuesheader 储存用户浏览器和服务端用来沟通的数据例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。

另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。

3)initParaminitParam取得设定web站点的环境参数(Context)例:一般的方法String userid = (String)application.getInitParameter("userid");可以使用${erid}来取得名称为userid4)pageContext。

EL表达式使用

EL表达式使用

EL表达式关键字: jspthe JavaServer Pages Standard Tag Library (JSTL)JSP Standard Tag Library (JSTL)EL(expression language)表达式EL 表达式的格式是这样的:用美元符号($)定界,内容包括在花括号({})中。

清单1. 说明EL 表达式定界符的JSTL 操作<c:out value="${user.firstName}"/>;此外,您可以将多个表达式与静态文本组合在一起以通过字符串并置来构造动态属性值,如清单4 所示。

单独的表达式由标识符、存取器、文字和运算符组成。

标识符用来引用存储在数据中心中的数据对象。

EL 有11 个保留标识符,对应于11 个EL 隐式对象。

假定所有其它标识符都引用限制了作用域的变量。

存取器用来检索对象的特性或集合的元素。

文字表示固定的值—数字、字符、字符串、布尔型或空值。

运算符允许对数据和文字进行组合以及比较。

清单2. 组合静态文本和多个EL 表达式以指定动态属性值<c:out value="Hello ${user.firstName} ${stName}"/>;隐式对象表1 中列出了11 个EL 隐式对象的标识符。

不要将这些对象与JSP 隐式对象(一共只有九个)混淆,其中只有一个对象是它们所共有的。

表1. EL 隐式对象类别标识符描述JSP pageContext PageContext 实例对应于当前页面的处理作用域pageScope 与页面作用域属性的名称和值相关联的Map 类requestScope 与请求作用域属性的名称和值相关联的Map 类sessionScope 与会话作用域属性的名称和值相关联的Map 类applicationScope 与应用程序作用域属性的名称和值相关联的Map 类请求参数param 按名称存储请求参数的主要值的Map 类paramValues 将请求参数的所有值作为String 数组存储的Map 类请求头header 按名称存储请求头主要值的Map 类headerValues 将请求头的所有值作为String 数组存储的Map 类Cookie cookie 按名称存储请求附带的cookie 的Map 类初始化参数initParam 按名称存储Web 应用程序上下文初始化参数的Map 类尽管JSP 和EL 隐式对象中只有一个公共对象(pageContext),但通过EL 也可以访问其它JSP 隐式对象。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EL表达式的隐式对象
在使用EL时,其实EL是先看标识符是否是其隐式对象之一,如果不是,才从四个域(page、request、session、application)中顺序搜索(使用pageContext.findAttribute方法)。

EL总共有如下隐式对象:
而这里,EL和JSP一样拥有pageContext对象,通过在EL中使用pageContext对象,能获取JSP中其它几个隐式对象,然后再获得这些对象中的属性。

例如获取当前web工程的名称的经典EL表达式:
${ pageContext.request.contextPath },就是由pageContext先获取request对象(因为在JSP的API中,我们可以看到pageContext有getRequest方法),获取到request对象后,因为request中含有getContextPath方法,因此我们还可以获得request对象中contextPath属性的值。

pageScope、requestScope、sessionScope、applicationScope这四个EL隐式对象分别代表了各自域中的Map对象(每个域以关键字来保存数据或对象,肯定是使用Map集合),这Map对象保存了存在这些域中的键值对。

通过EL表达式和这些隐式对象,我们可以直接从指定的域中获取存储的数据。

例1:
1<%
2User u = new User();
3u.setUsername("fjdingsd");
4session.setAttribute("user", u);
5%>
6
7欢迎您:${ername}
在浏览器中观察:
对于用户登录这样的案例来说,我们检查用户是否登录肯定只需要从session域中查询,这样使用EL表达式的sessionScope隐式对象就足够了。

param隐式对象:表示所有请求参数的Map集合对象。

例如表单提交,那么在请求参数中的数据就以键值对存储在param对象所代表的Map集合中,下面的例子我以get方式来替代post方式来模拟表单请求参数:
例2:
${ername}
在地址栏上添加URL参数,可以看到:
使用param隐式对象同样也能作为数据回显功能,在以前JSP页面提交的表单如果想做出数据回显功能,必须创建一个form的bean对象,当表单校验失败时,重新将这个bean对象通过转发(forward)传回JSP页面再取出。

而使用param 对象,不需要新建form的bean对象,只需要在表单校验失败时转发回表单所在的JSP页面,通过param对象就可以从请求中取出之前的表单数据。

例3:表单验证失败的数据回显demo
在JSP页面beantag.jsp中:
1<form action="${pageContext.request.contextPath}/servlet/FormHandler" method="post">
2用户名<input type="text" name="username" value="${ername}"/>
3<input type="submit" value="提交">
4</form>
在处理表单的Servlet中:
1//省略表单验证过程,验证失败重新转发到表单页面
2request.getRequestDispatcher("/beantag.jsp").forward(request, response);
刚进入表单注册页面:
假设表单验证失败,则转发请求到表单注册页面,并回显数据:
paramValues隐式对象:也是表示一个保存所有的请求参数的Map集合对象,但是paramValues对象和param对
象的区别是,对任何一个参数,paramValues都是以字符串数组(String[])作为保存数据的类型,因此paramValues对象适合在有同名参数的情况下使用。

例4:
${[0]}
浏览器中观察:
例5:
${[1]}
浏览器中观察:
header隐式对象:表示一个保存了该JSP页面发出请求的请求头字段的Map集合对象。

注意:这个对象只能获取请求头字段的信息,不能获取响应头字段的信息。

另外如果头字段中含有小横线的”-”,例如”Accept-Encoding”,则要使用中括号加引号的EL取数据形式,例如${ header[‘accept-encoding’] }。

例6:
${header.connection}
在浏览器中观察:
例7:
${header['accept-encoding']}
在浏览器中观察:
headerValues隐式对象功能类似于header隐式对象,但以字符串数组封装每个保存的请求头字段信息,这点跟paramValues隐式对象是一样的。

cookie隐式对象:表示一个保存了该请求中所有的Cookie的Map集合对象。

假设在请求中有一个cookie,cookie的键值对为:
JSESSIONID=E9546AE9C86FB722BDBD7AF947157379
例8:
${cookie.JSESSIONID}
在浏览器中观察:
可以看到,cookie隐式对象的名称(cookie)是Map集合的名称,而在这个Map集合中,有一个键值对的key命名为
JSESSIONID,而通过${cookie.JSESSIONID}获取到的是一个Cookie对象,那么我们如何获取该Cookie的值呢?
之前说过EL表达式都是通过对象的具有的属性来获取属性值,能被称为属性的都有getXXX方法,而Cookie正是具有getName()方法和getValue()方法,因此在EL表达式中获取了Cookie对象后可以再获取这两个属性:
例9:
1${} <br>
2${cookie.JSESSIONID.value} <br>
在浏览器中观察:
initParam隐式对象:表示一个保存了所有web应用初始化参数(context-param)的Map集合对象。

<context-param>标签用于配置全局性的web参数,在Servlet中可以使用ServletContext.getInitParameter方法获取指定参数的值。

而在JSP页面中,我们可以同EL表达式的initParam方法来获取为web应用配置的全局性参数。

例10:
在web.xml文件中配置:
1<context-param>
2<param-name>username</param-name>
3<param-value>fjdingsd</param-value>
4</context-param>
在JSP页面中:
${ername }
在浏览器中观察:
本文作者:fjdingsd。

相关文档
最新文档