EL 和 JSTL练习题
单选题
1、
下列JSTL标签中,不属于流程控制标签的是( )
A、A、<c:set>
B、B、<c:choose>
C、C、<c:when>
D、D、<c:if>
参考答案 :
A
答案说明 :
<c:set>标签用于设置变量值和对象属性
2、
下列选项中,关于EL表达式语法的声明正确的是()。
A、A、 < u s e r n a m e > B 、 B 、 <username> B、B、 <username>B、B、{username}
C、C、 ( u s e r n a m e ) D 、 D 、 (username) D、D、 (username)D、D、[username]
参考答案 :
B
答案说明 :
EL表达式的语法声明都是以" " 符号开始,以 " " 符号结束的,具体格式如: {"符号开始,以"}"符号结束的,具体格式如: "符号开始,以""符号结束的,具体格式如:{表达式},其中的表达式必须符合EL语法要求
3、
阅读下面代码片段: c_out.jsp: <%–第1个out标签 --%> userName1属性的值为: <c:out value=“username1” default=“unknown” /> <%–第2个out标签 --%> userName2属性的值为: <c:out value=“username2”> unknown </c:out> 当使用浏览器访问c_out.jsp时页面显示的效果是()
A、A、userName1属性的值为:unknown userName2属性的值为: username2
B、B、userName1属性的值为:username1 userName2属性的值为: username2
C、C、userName1属性的值为: null userName2属性的值为: null
D、D、userName1属性的值为:username1 userName2属性的值为: unknown
参考答案 :
B
答案说明 :
输出文本内容为value属性的值,当value属性为null时则输出的默认值
4、
下列选项不属于EL中的关键字的是()
A、A、and
B、B、or
C、C、not
D、D、no
参考答案 :
D
答案说明 :
EL中所有的关键字: and eq gt true instanceof or ne le false empty not lt ge null div mod
5、
下列关于<c:out>标签的说法,错误的是( )
A、A、<c:out>标签用于输出数据
B、B、<c:out>标签能够实现类似于JSP表达式的功能
C、C、<c:out>标签的value属性指定要输出的数据
D、D、<c:out>标签的value属性不能是EL表达式
参考答案 :
D
答案说明 :
<c:out>标签的value属性可以是EL表达式
6、
关于EL中的隐式对象,下列说法错误的是()。
A、A、pageScope可以取出最小的域对象PageContext中的参数
B、B、request,session是El中的内置对象
C、C、EL中有11个隐式对象,常用的有pageScope,reuqestScope,sessionScope,applicationScope
D、D、EL和jstl相辅相成,丰富jsp功能
参考答案 :
B
答案说明 :
EL中有11个隐式对象,常用的有pageScope,reuqestScope,sessionScope,applicationScope。 request,session是JSP中的内置对象
7、
关于EL表达式${(1==2)?3:4}的运算结果正确的是( )
A、A、true
B、B、false
C、C、3
D、D、4
参考答案 :
D
答案说明 :
判断1是否等于2,等于返回3,不等于则返回4
8、
阅读下面代码片段: c_if.jsp: <c:if test=“${1==1}” > hello world </c:if> 当在浏览器访问该c_if.jsp时的效果是( )
A、A、浏览器空白,控制台有信息显示
B、B、浏览器报错,控制台出现异常
C、C、浏览器显示:hello world,控制台正常
D、D、浏览器正常,控制台显示:hello world
参考答案 :
C
答案说明 :
test属性用于设置逻辑表达式,结果为true时则要输出标签体中的内容
9、
关于EL表达式语言,下列说法错误的是( )
A、A、EL表达式中的变量要预先定义才能使用
B、B、它的基本形式为${var}
C、C、只有在JSP文件中才能使用EL语言,在Servlet类的程序代码中通常不使用它
D、D、它能使JSP文件的代码更加简洁
参考答案 :
A
答案说明 :
EL中的变量就是一个基本的存储单元,EL中的变量不用事先定义就可以直接使用。使用EL的方式获取域对象中存储的数据
10、
下面选项中,与request.getAttribute(“p”);等效的EL表达式是()
A、A、 < r e q u e s t . p > B 、 B 、 <request.p> B、B、 <request.p>B、B、[requestScope.p]
C、C、 ( r e q u e s t . p ) D 、 D 、 (request.p) D、D、 (request.p)D、D、{requestScope.p}
参考答案 :
D
答案说明 :
无
11、
关于EL中的运算符,下列说法错误的是( )
A、A、"-“运算符即可以作为减号,也可以作为负号
B、B、empty运算符不是一个前缀运算符
C、C、运算符(?:)类似于Java中的if-else语句
D、D、”/"或"div"运算符在进行除法运算时,商为小数
参考答案 :
B
答案说明 :
在EL中,判断对象是否为空,可以通过empty运算符实现,该运算符是一个前缀(prefix)运算符, 即empty运算符位于操作数前方,用来确定一个对象或变量是否为null或空。
12、
下列选项中,EL的标识符写法正确的是()
A、A、123user"name
B、B、or
C、C、pageContext
D、D、username
参考答案 :
D
答案说明 :
EL的标识符不能以数字开头。不能是EL中的关键字,如and、or、gt等。不能是EL隐式对象,如pageContext。不能包含单引号(')、双引号(")、减号(-)和正斜线(/)等特殊字符。
13、
下列选项中,使用coolie获取对象的用法错误的是( )。
A、A、 ${cookie.userName}
B、B、 ${cookie.userName.name}
C、C、 ${cookie.userName.value}
D、D、 c o o k i e . u s e r N a m e . t e x t ∗ ∗ < f o n t c o l o r = g r e e n > 参考答案 : < / f o n t > ∗ ∗ D ∗ ∗ < f o n t c o l o r = r e d > 答案说明 : < / f o n t > ∗ ∗ c o o k i e 对象用法示例如下:获取 c o o k i e 对象的信息: {cookie.userName.text} **<font color=green>参考答案 :</font>** D **<font color=red>答案说明 :</font>** cookie对象用法示例如下: 获取cookie对象的信息: cookie.userName.text∗∗<fontcolor=green>参考答案:</font>∗∗D∗∗<fontcolor=red>答案说明:</font>∗∗cookie对象用法示例如下:获取cookie对象的信息:{cookie.userName} 获取cookie对象的名称: c o o k i e . u s e r N a m e . n a m e 获取 c o o k i e 对象的值: {cookie.userName.name} 获取cookie对象的值: cookie.userName.name获取cookie对象的值:{cookie.userName.value}
14、
在c_if.jsp有如下部分代码: <c:if test=“true” > true </c:if> <c:else test=“false” > false </c:else> 对于上述代码片段说法正确的是()
A、A、该页面代码部署启动时,控制台会报错
B、B、在该页面会出现编译错误,并有红叉提示
C、C、访问该页面会出现结果:true false
D、D、访问该页面时,浏览器没有任何信息显示
参考答案 :
C
答案说明 :
没有<c:else>标签,标签中的内容都显示在页面
15、
关于JSTL标签库,下列说法错误的是( )
A、A、JSTL简化了JSP和Web应用程序的开发
B、B、JSTL以一种统一的方式减少了JSP中的脚本代码数量
C、C、JSTL为条件判断、迭代、国际化、数据库访问等提供支持
D、D、JSTL是JSP2.0的重要特性,编写JSP页面时不需要引入标签库
参考答案 :
D
答案说明 :
从JSP 1.1规范开始,JSP就支持使用自定义标签,Sun公司制定了一套标准标签库(JavaServer Pages Standard Tag Library),简称JSTL。使用这些标签库之前,必须在JSP页面的顶部使用<%@ taglib%>指令定义引用的标签库和访问前缀。
16、
阅读下面代码片段: <c:set var=“sum” value=“0”/> <c:forEach var=“i” begin=“2” end=“10” step=“2”> <c:set var=“sum” value=" s u m + i " / > < / c : f o r E a c h > s u m = {sum+i}"/> </c:forEach> sum= sum+i"/></c:forEach>sum={sum} 对于上述代码片段说法正确的是( )
A、A、输出1到10的和值
B、B、输出1到10之间的奇数和值
C、C、输出1到10之间的偶数和值
D、D、输出0
参考答案 :
C
答案说明 :
<c:set>标签用于设置变量值和对象属性, <c:forEach >的var属性用于将当前迭代到的元素保存到page域中的名称,items属性用于指定将要迭代的集合对象,begin属性用于指定从集合中第几个元素开始进行迭代,begin的索引值从0开始,如果没有指定items属性,就从begin指定的值开始迭代,直到迭代结束为止。step属性用于指定迭代的步长,即迭代因子的增量。
多选题
17、
下列选项中,属于EL中的常量的是( )
A、A、true
B、B、100
C、C、1.2E4
D、D、null
参考答案 :
A,B,C,D
答案说明 :
EL中的常量有:布尔常量true和false、整型常量(与Java中的十进制的整型常量相同)、浮点数常量(浮点数常量用整数部分加小数部分表示,也可以用指数形式表示)、字符串常量、Null常量(用null表示)
18、
下列选项中,pageContext可以获取到的隐式对象有( )。
A、A、 applicationScope
B、B、 pageScope
C、C、 cookie
D、D、 header
参考答案 :
A,B,C,D
答案说明 :
pageContext可以获取其他10个隐式对象,包括pageScope、requestScope、sessionScope、applicationScope、param、paramValues、header、headerValues、cookie、initParam。
19、
下列选项属于EL中的关键字的是()
A、A、eq
B、B、empty
C、C、div
D、D、instanceof
参考答案 :
A,B,C,D
答案说明 :
EL中所有的关键字: and eq gt true instanceof or ne le false empty not lt ge null div mod
20、
下面关于${customer.name}表达式的作用,说法正确的是()
A、A、获取customer对象
B、B、获取customer对象的name属性
C、C、获取的customer对象一定在四大域中存在getCustomer()方法
D、D、获取name属性,是因为customer对象中存在相应的getName()方法
参考答案 :
B,D
答案说明 :
获取customer对象的name属性 获取name属性,是因为customer对象中存在相应的getName()方法
21、
下面关于点运算符(.)和方括号运算符([ ])的表达中,正确的是()
A、A、 u s e r [ " M y − N a m e " ] B 、 B 、 {user["My-Name"]} B、B、 user["My−Name"]B、B、{users[0].userName}
C、C、 u s e r [ " M y − N a m e " ] D 、 D 、 {user["My-Name"]} D、D、 user["My−Name"]D、D、{customer.name}
参考答案 :
A,B,D
答案说明 :
EL中的方括号运算符与点运算符的功能相同,都用于访问JSP页面中某些对象的属性,当获取的属性名中包含一些特殊符号,如"-“或”?"等非字母或数字的符号,就只能使用方括号运算符访问该属性。
22、
下面隐式对象中,用于获取客户端传递的请求参数的是()
A、A、 param
B、B、 paramValues
C、C、 initParam
D、D、 headerValues
参考答案 :
A,B
答案说明 :
在JSP页面中,经常需要获取客户端传递的请求参数,为此,EL提供了param和paramValues两个隐式对象,这两个隐式对象专门用于获取客户端访问JSP页面时传递的请求参数。
23、
下列选项中,用于访问作用域范围的隐式对象的是( )。
A、A、pageScope
B、B、requestScope
C、C、sessionScope
D、D、applicationScope
参考答案 :
A,B,C,D
答案说明 :
在EL中提供了4 个用于访问作用域范围的隐式对象,即pageScope、requestScope、 sessionScope和applicationScope。
判断题
24、
pageScope、requestScope、 sessionScope和applicationScope4个隐式对象都可以通过setAttribute()方法存储属性,通过getAttribute()方法获取属性
参考答案 :
对
答案说明 :
无
25、
EL表达式都是以" " 符号开始,以 " " 符号结束的,具体格式是 {"符号开始,以"}"符号结束的,具体格式是 "符号开始,以""符号结束的,具体格式是{表达式}。
参考答案 :
对
答案说明 :
无
26、
initParam是用于获取Web应用初始化信息的隐式对象。
参考答案 :
对
答案说明 :
无
27、
<c:out>标签用于把表达式计算的结果输出到JSP页面。
参考答案 :
对
答案说明 :
无
28、
EL表达式中的隐式对象与JSP中的隐式对象除了pageContext对象是它们共有的,其它隐式对象则毫不相关。
参考答案 :
对
答案说明 :
无
29、
EL表达式的initParam隐式对象可获取web.xml文件中配置的Servlet信息。
参考答案 :
错
答案说明 :
initParam对象用于获取Web应用初始化参数的值
30、
EL表达式中条件运算符用于执行某种条件判断,它类似于Java语言中的if-else语句。
参考答案 :
对
答案说明 :
无
31、
EL表达式提供的两种用于访问数据的操作符是.和[],两个作用完全一样。
参考答案 :
错
答案说明 :
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号时,就一定要使用[]。 如果要动态取值,就可以用[]来做,而.无法做到动态取值。
32、
taglib指令的uri属性用于指定引入标签库描述符文件的URI。
参考答案 :
对
答案说明 :
无
33、
JSTL标签库中的Core标签库的URI为http://java.sun.com/jsp/core。
参考答案 :
错
答案说明 :
核心标签库的taglib指令URI为http://java.sun.com/jsp/jstl/core
填空题
34、
EL的
applicationScope
隐式对象,代表application域中用于保存属性的Map对象。
参考答案 :
【applicationScope】
答案说明 :
无
35、
cookie
是用于获取Cookie信息的隐式对象。
参考答案 :
【cookie】
答案说明 :
无
36、
<c:forEach>标签可以迭代集合对象中的元素,包含Set、List、Map和
数组
等。
参考答案 :
【数组】
答案说明 :
Core标签库提供了一个<c:forEach>标签,该标签专门用于迭代集合对象中的元素,如Set、List、Map、数组等
37、
EL的
requestScope
隐式对象,代表request域中用于保存属性的Map对象。
参考答案 :
【requestScope】
答案说明 :
无
38、
EL的
param
对象用于获取请求参数的某个值。
参考答案 :
【param】
答案说明 :
无
39、
JSTL标签库是由核心标签库、国际化/格式化标签库、XML标签库、函数标签库和
SQL标签库
共同组成。
参考答案 :
【SQL标签库】
答案说明 :
JSTL标签库是由5个不同功能的标签库共同组成,这5个标签库分别是核心标签库、国际化/格式标签库、SQL标签库、XML标签库和函数标签库
40、
如果要在JSP页面中导入Core标签库,需要使用
taglib
指令。
参考答案 :
【taglib】
答案说明 :
在使用JTL之前,必须在JSP页面的顶部使用<%@ taglib uri=“” prefix=“”%>指令定义引用的标签库和访问前缀。
41、
EL中的标识符不能以数字开头、不能包含特殊字符、不能是EL中的关键字和
隐式对象
。
参考答案 :
【EL隐式对象】
答案说明 :
EL的标识符不能以数字开头。不能是EL中的关键字,如and、or、gt等。不能是EL隐式对象,如pageContext。不能包含单引号(')、双引号(")、减号(-)和正斜线(/)等特殊字符。
42、
<c:set>标签用于给程序中的某个对象设置值,有效范围没有指定默认是
page
。
参考答案 :
【page】
答案说明 :
无
43、
字符串常量是用单引号或
双引号
引起来的一连串字符。
参考答案 :
【双引号】
答案说明 :
无