EL和JSTL核心标签库
《网络程序设计》期末考试复习题及参考答案

网络程序设计复习题(课程代码 252284)一.选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. javaB. classC. htmlD. exe2、设int型变量x = 1 , y = 2 , z = 3,则表达式y+=z--/x++ 的值是( )。
A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。
A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )6、下列浏览器中,可以运行HTML中的Applet,而忽略其他HTML命令的是( )。
A. Netscape 3.0B. Internet Explorer5.0C. Hot JavaD. Appletviewer7、以下哪一个不是JA V A的标准数据流( )。
A. 标准输出数据流B. 标准输入数据流C. 标准错误数据流D. 标准运算数据流8、下面声明数组的写法错误()。
A. int a[ ]; B: int[ ] a;C: int[ ][ ] a[3][ ]; D; int[ ][ ] a[ ][3];9: 设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char 型变量,则表达式x+y*a/x+b/y+c的值为( )类型。
EL表达式与JSTL

EL和JSTL主要内容✓EL表达式✓JSTL标签库1.EL表达式EL表达式又称为表达式语言(Expression Language),它是JSP中一个很重要的组成部分。
在JSP页面中使用EL表达式,可以简化对变量和对象的访问。
EL表达式的语法非常的简单,所有的EL表达式都是以“${”开始,以“}”结束,比如${name}。
EL表达式会将表达式中的结果在页面上输出,就像使用JSP的表达式结构或使用out内置对象进行输出一样。
EL表达式对运算符支持使用EL表达式进行算术运算,在EL表达式中支持+、-、*、/、%运算,示例如下:代码演示:EL表达式算术运算<%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>EL表达式算术运算</title></head><body>12 + 15 = ${12+15}<br>12 * 15 = ${12*15}<br>12 - 15 = ${12-15}<br>12 / 15 = ${12/15}<br>12 % 15 = ${12%15}<br></body></html>图1 EL表达式算术运算结果在EL表达式中还可以支持关系运算符操作,示例如下:代码演示:EL表达式关系运算符<body>12==15 ${12==15}<br>12<15 ${12<15}<br>12>15 ${12>15}<br>12<=15 ${12<=15}<br>12>=15 ${12>=15}<br>12!=15 ${12!=15}</body>EL表达式除了支持普通的关系运算符外,还可以使用字符来表示关系运算符,下面的写法和上面使用普通关系运算符表示的顺序一一对应:代码演示:EL表达式关系运算符<body>12==15 ${12 eq 15}<br>12<15 ${12 lt 15}<br>12>15 ${12 gt 15}<br>12<=15 ${12 le 15}<br>12>=15 ${12 ge 15}<br>12!=15 ${12 ne 15}</body>图2 EL表达式关系运算符结果EL表达式中同样支持逻辑运算:代码演示:EL表达式逻辑运算<body>${12 < 15 && 12 < 15 }<br>${12 < 15 and 12 < 15 }<br>${12 < 15 || 12 > 15 }<br>${12 < 15 or 12 >15 }<br>${!(12 < 15) }<br>${not (12 < 15) }</body>从上面的代码中可以看出EL表达式中不仅支持&&、||、!方式的逻辑运算符,同样也支持and、or、not方式的逻辑运算符。
实验内容:使用EL及JSTL

XXXX 大学计算机学院实验报告计算机学院2017 级软件工程专业 5 班指导教师XXX 学号姓名XXX 2019 年10 月30 日成绩实验内容或上机调试程序实验:使用EL表达式和JSTL实现将文本框中的内容输出到页面的功能,在此页面的文本框中输入内容,单击页面提交按钮之后,输入框以及按钮消失,文本框中输入的内容显示到页面(操作及显示效果均在同一页面完成)①核心代码如下所示:<!-- 表单 --><c:set value="1"var="visitContent"property="visitContent"/><!-- 表单提交后,表单内输入框如果为null,就隐藏输入框 --><c:if test="${erName==null}"><form action="${pageContext.request.contextPath}/index.jsp">userName:<input type="text"name="userName"><br/>userPassword:<input type="text"name="userPassword"><input type="submit"value="提交"><input type="reset"value="重置"></form></c:if><hr/><!-- 使用EL表达式显示输入框中的内容 -->userName:${erName} <br/>userPassword:${erPassword}②完成效果如下所示:图表单提交之前的效果实验内容或上机图表单提交后前的效果调试程序。
el和jstl实验总结 -回复

el和jstl实验总结-回复实验总结:el和jstl在Java Web开发中的应用引言:在Java Web开发中,为了简化页面的开发和编写,提高开发效率,EL表达式(Expression Language)和JSTL标签库(JSP Standard Tag Library)被广泛应用。
本文将以实验总结的形式,深入探讨EL表达式和JSTL标签库在Java Web开发中的应用和使用方法,并提供一些实际案例,以便读者更好地理解和应用这两个技术。
第一部分:EL表达式(Expression Language)的应用1. EL表达式的概述:EL表达式是一种用于在JSP页面中处理和访问服务器端数据的简单而强大的语言。
它提供了一种简洁和易于理解的方式来获取和展示数据。
2. EL表达式的语法:介绍EL表达式的基本语法,包括变量访问、属性访问、方法调用等。
3. EL表达式的内置对象:介绍EL表达式内置的一些对象和方法,如pageContext、request、response、session等,以及它们的常用用法。
4. EL表达式的运算符:介绍EL表达式中常用的运算符,如四则运算、逻辑运算、比较运算等。
5. EL表达式的应用案例:通过实际案例,展示EL表达式在Java Web开发中的应用,如获取用户输入、计算表单数据、展示数据库查询结果等。
第二部分:JSTL标签库(JSP Standard Tag Library)的应用1. JSTL标签库的概述:JSTL是一组自定义标签,通过标签的方式提供了一种简洁和易于维护的方式来处理和展示JSP页面中的数据。
2. JSTL标签库的分类:介绍JSTL标签库的分类,如核心标签库、格式化标签库、数据库标签库等。
3. JSTL核心标签库的常用标签:介绍JSTL核心标签库中常用的标签,如<c:if>、<c:forEach>、<c:choose>等,以及它们的常用用法。
第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等,这
第09章 使用EL与JSTL

${msg}
</body> </html>
5
EL也是既可以直接写在HTML的标签内部, 也可以写在某个标签的属性中,例如: <% String s="index.jsp"; request.setAttribute("url", s); %>
<a href="${url}">这是一个超级链接,链接到首页</a> 实际输出: <a href="index.jsp">这是一个超级链接,链接到首页</a>
</body>
18
使用“.”操作符输出JavaBean类型对象的信息
19
“[ ]”操作符
如果从作用域中取出的对象不是映射类型 (Map)或者不是JavaBean的类型,需要使 用“[ ]”操作符处理。
“[ ]”操作符可以处理: 映射类型(Map)对象 JavaBean类型对象 数组类型对象 列表类型(List)对象 (EL3.jsp) (EL4.jsp) (EL5.jsp) (EL6.jsp)
${'a' < 'b'} ${"hip" > "hit"} ${'4' > 3}
false
true false true
10
空运算符
空运算符(empty)用来判断参数是不是null、 空字符串、空数组、空Map或者空集合,如 果是则返回true,否则返回false
EL表达式 ${empty null} ${empty ""} 结果 true true
EL表达式与JSTL标签map遍历varStatus属性下标使用

EL表达式与JSTL标签map遍历varStatus属性下标使⽤在JSP页⾯开发中,JSTL标签库迭代标签<c:forEach>为我们迭代遍历数组集合提供了⼀种选择。
遍历过程中varStatus属性为我们遍历集合提升了很⼤操作空间。
贴⼀下具体使⽤:需求:有⼀map集合,⽣成标准table,三个元素⼀换⾏<c:forEach var="entry" items="${map}" begin="0" end="${fn:length(map)}" varStatus="status"><c:choose><c:when test="${(status.index)%3==0}"><tr><td>${entry.key}:${entry.value}</td></c:when><c:when test="${fn:length(map) == status.count || (status.index)%3==2}"><td>${entry.key}:${entry.value}</td></tr></c:when><c:otherwise><td>${entry.key}:${entry.value}</td></c:otherwise></c:choose></c:forEach>说明:1、items:是集合,⽤EL表达式;2、var:变量名,存放items ,代表集合中每⼀条数据3、varStatus: 显⽰循环状态的变量,通过下⾯⼏个属性,可以⽅便使⽤迭代索引值,进⾏特殊判断业务:①index:从0开始; 显⽰当前迭代的索引值②count:元素位置,从1开始; 显⽰当前迭代显⽰的⾏位置。
JSTL标准标签库

一、JSTL简介引入:在JSP以及javaBean中,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素,进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL。
1) 定义:包含编写和开发JSP页面的一组标准标签a) 特点:为开发者提供了一个无脚本环境,无需编写JAVA脚本b) 包含1. 核心标签库2. SQL标签库3. 国际化(I18N)与格式化标签库4. XML标签库c) 分类:两个版本1. 使用 EL2. 使用请求时表达式2) 作用a) 进一步简化开发,简化页面, 实现页面脱离jsp脚本元素b) 让页面尽可能少的出现java代码c) 优势:与EL表达式配合使用,可以用EL 代替属性值进一步动态改变3) 使用a) 导入标签库(Eclipse等工具中需要做这一步)b) 使用标签库中标签的实施步骤i. 将JSTL对应的JAR文件:jstl.jar、standard.jar添加到应用程序的WEB-INF/lib目录(这两个jar文件见课件目录” JSTL标签库”)ii. 在编写的jsp页面中指定标签库的描述信息:语法:<%@ taglib prefix=”c” uri=”/jstl/core_rt” %>关于上述语法使用的扩充:<%@ taglib prefix =”标签别名” uri =”标签库的位置“>1. 标签别名常用c2. 标签库的位置:(即uri的设置)a) 教材上:” /jstl/core_rt“ 指向sun公司网站上的库文件地址,注意这里只是个地址指向,即使没有上网,在工具中也已经对应到工程中的路径了(注意:此时要先将标签库的两个jar文件放入”工程\WEB-INF\lib”目录下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
表达式变量
• Web 容器计算变量(从某一范围内取出变量)
– 如:${username} – 变量搜索范围依次为
• Page 、Request、Seesion、Application
• 点运算符 ( . ) 或方括号( [ ] ) 访问变量的值
10
隐式对象
隐式对象
pageContext
param
<x:forBach>
<fn:split>
15
JSTL配置
• JSTL 1.1必须在支持Servlet 2.4且JSP 2.0以上版本的 Container才可使用 • JSTL包括两个jar包:jstl.jar和standard.jar • 特别注意:
JSTL 1.0中,核心标签库的uri默认为/jstl/core, 比JSTL 1.1少一个jsp/ 的路径。因为JSTL 1.1同时支持JSTL 1.0和 1.1,所以假若核心标签库的uri为/jstl/core,则 将会使用到JSTL 1.0的核心标签库。 JSTL1.1中,核心标签库的uri默认为 /jsp/jstl/core
19
<c:out>语法
• 没有本体内容
<%@ page contentType="text/html;charset=GB2312"%> [default="defaultValue"] /> <c:out value="value" [escapeXml="{true|false}"] <%@ taglib prefix="c" uri="/jsp/jstl/core"%> <html> • 有本体内容 <head> <title>测试你的第一个使用到 测试你的第一个使用到JSTL的网页 的网页</title> 测试你的第一个使用到 的网页 </head> <c:out value="value" [escapeXml="{true|false}"]> <body> default value 表格中的EL字段,表示此属性的值是否可以为EL表达式, value="Hello JSP 2.0 /> <br/> </c:out> <c:out例如:Y表示 attribute!! ""${表达式}" 为符合语法的,N则反之。 = <c:out value="${ 3 + 5 }" /> <br/> • 属性 <c:out value="${ param.data }" default="No Data" /> <br/> <c:out value="<B>有特殊字符 有特殊字符</B>" /> <br/> 有特殊字符 <c:out value="<B>有特殊字符 有特殊字符</B>" escapeXml="false" /> 有特殊字符 EL 名称 说明 类型 必须 默认值 </body> Y Object 需要显示出来的值 是 无 </html> value
6
运算符
运算符
算术
关系
逻辑
Empty
运算符 * / 或 div + -
运算符 描述 < 或 lt 小于 乘法 > 或 gt 除法 < = 或 le > =加法 或 ge = =减法 or eq != 大于
描述 运算符 &&、and
描述 运算符 Empty 逻辑与 逻辑或
描述 检查空值
|| or 小于等于 大于等于 等于 不等于
– 核心标签库 (Core tag library) xml /jsp/jstl/xml XML标签库 – I18N格式标签库 (I18N-capable formatting tag library) – SQL标签库 (SQL tag library) – XML标签库 (XML tag library) fn /jsp/jstl/functions 函数标签库 – 函数标签库 (Functions tag library)
JavaWeb技术 –EL和JSTL核心标签库 技术 和 核心标签库
主要内容
• • • • • • EL简介 EL语法 EL的使用 JSTL简介 JSTL配置 JSTL核心标签库的使用
2
本章目标
• 掌握EL的使用 • 掌握JSTL核心标签库的使用
3
为什么需要EL和JSTL
• JSP标准动作的局限
名称 value var scope target property 要被储存的值 欲存入的变量名称 var变量的JSP范围 为一JavaBean或java.util.Map对象 指定target对象的属性 说明 EL Y N N Y Y 类型 Object String String Object String 必须 否 否 否 否 否 默认值 无 无 page 无 无
default escapeXml 如果value的值为null,则显示default的值 是否转换特殊字符,如:< 转换成 < Y Y Object boolean 否 否 无 true
20
<c:set>语法
• <c:set>主要用来将变量储存至JSP范围中或是JavaBean的属性 中。 • 将value的值储存至范围为scope的varName 变量之中
16
JSTL
• 示例:创建我们第一个JSTL
若要在JSP网页中使用JSTL,一定要先做下面这行声明
<%@ page contentType="text/html;charset=GB2312"%> <%@ taglib prefix="c" uri="/jsp/jstl/core"%> <html> <head> <title>测试你的第一个使用到JSTL的网页</title> </head> <body> <c:out value="欢迎测试你的第一个使用到JSTL的网页" /> </br> 你使用的浏览器是: </br> <c:out value="${header['User-Agent']}" escapeXml="true" /> </br> <c:set var="a" value="David O'Davies" /> <c:out value="${a}"/> </body> </html>
5
表达式语法
• JSP 表达式的语法
– ${EL Expression} – 例如: ${er.sex} 或${er[“sex”]} ${er[“sex”]} 等价于 User user=(User)session.getAttribute(“user”); String sex=user.getSex();
paramValues
initParam
cookie
pageScope header requestScope headerValues
sessionScope
applicatntext:提供对页面属性的访问
param:返回客户端的请求参数的字符串值
paramValues:返回映射至客户端的请求参数的一组值
JSP 页面
静态内容 动态内容
JavaBean属性不是基本类 属性不是基本类 型,如何进行读取和赋值
4
表达式语言简介
• EL
– Expression Language – 简称为表达式语言
• 由两个组开发
– JSP 标准标签库专家组 – JSP 2.0 专家组
• JSP EL 表达式用于以下情形
– 标准标签和自定义标签 – 安装支持Servlet2.4/JSP2.0的Container
<c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>
• 将本体内容的数据储存至范围为scope的varName 变量之中
<c:set var="varName" [scope="{ page|request|session|application }"]> … 本体内容 </c:set>
7
运算符 3-2
<html> <head> <title>运算符</title> </head> <body> <h1>比较运算符</h1> <b> 4 > 3 ${4 > 3}<br/> 4 < 3 ${4 < 3}<br/> 4 ≥ 3 ${4 >= 3}<br/> 4 ≤ 3 ${4 le 3} <br/> 4 = 4 ${4 == 4} </b> <h1>Empty 运算符</h1> <b> empty " " ${empty "}<br/> empty " sometext " ${empty " sometext "}<br/> </b> </body> </html>