教学材料《JSP设计与开发》-第8章_第1页
教学材料《JSP设计与开发》-第8章_第2页
教学材料《JSP设计与开发》-第8章_第3页
教学材料《JSP设计与开发》-第8章_第4页
教学材料《JSP设计与开发》-第8章_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习要点EL的基本用法核心标签库SQL标签库函数标签库JSTL典型应用返回8.1JSTL概述8.1.1什么是JSTLJSTL(JavaServerPagesStandardTagLibrary),即JSP标准标签库,其主要功能是为JSPWeb开发人员提供一个标准通用的标签库。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。

JSTL标签是基于JSP页面的,这些标签可以插入在JSP代码中,本质上JSTL也是提前定义好的一组标签,这些标签封装了不同的功能,在页面上调用标签时,就等于调用了封装起来的功能。JSTL的目标是为了简化JSP页面的设计。对于页面设计人员来说,使用脚本语言操作动态数据是比较困难的,二采用标签和表达式语言则相对容易,JSTL的使用为页面设计人员和程序开发人员的分工协作提供了便利。下一页返回8.1JSTL概述JSTL由5个不同功能的标签库组成,在JSTL规范中为这5个标签的URI和前缀做出了约定,如表8-1所示。使用JSTL时,需要将jstl.jar和standard.jar两个文件复制到当前项目的WEB-INF\lib目录下,并在JSP文件中使用taglib指令。

JSTL的优点如下。

(1)在应用程序服务器之间提供了接口,最大程度地提高Web应用在各应用服务器之间的移植。(2)简化了JSP和Web应用程序的开发。(3)以一种统一的方式减少了JSP中的Scriptlets代码数量,可以达到没有任何Scriptlets代码的程序。

(4)允许JSP设计工具与Web应用程序开发的进一步集成。上一页下一页返回8.1JSTL概述8.1.2案例一:一个简单的JSTL应用【案例功能】使用JSTL的儿种标签输出信息。【案例目标】了解JSTL在JSP中的应用。【案例要点】JSTL标签的种类和编码格式。【案例步骤】(1)创建第8章源码文件夹ch08。(2)将jstl.jar和standard.jar两个文件复制到当前项目的WEB-INF\lib目录下。(3)编写FirstJSTL.jsp源代码文件。【源码】FirstJSTL.jsp上一页下一页返回8.1JSTL概述上一页下一页返回8.1JSTL概述上一页下一页返回8.1JSTL概述

【代码说明】①第2-3行:使用核心标签库和国际化标签库,使用taglib指令来设置前缀和uri。②第5行:使用国际化标签库中的setLocale标签设定语言地区代码为中文zh-cn。③第10-14行:把3个字符串加到ArrayList类对象customers中,并将其设置为request对象的customers属性。④第16行:使用核心标签库中的EL标签设置一个EL变量customer的值为request对象的customers属性值。⑤第17-20行:使用核心标签库中的forEach标签循环输出EL变量customer中的值。上一页下一页返回8.1JSTL概述⑥第24-27行:使用国际化标签库标签按照指定的时区和格式输出当前时间。

(4)部署。

(5)启动Tomcat服务器后,运行结果如图8-1所示。说明:${customers}是一种表达式语言(EL),可替代传统的JSP输出语句更快捷地输出信息,下一节将详细讲解。上一页返回8.2表达式语言(EL)8.2.1EL的基本语法格式

EL的语法简单,使用方便。所有的EL表达式都是以“${”开始,以“{”结束,如${userName}。在EL中可以输出常量,变量,也可以在EL中进行各种运算。如果输出字符串常量,需要使用双引号引起来。EL可以直接在JSP页面的模板文本中使用,也可以作为元素属性的值,还可以在自定义或者标准动作元素的内容中使用。在表达式中可以进行各种运算。最基本的一个是“.”和“”。作用是访问某个范围的变量,某个集合的元素及某个对象的属性等。例如,要访问请求信息中的用户ID,可以使用${param.Userid}或者${param“userid”}。下一页返回8.2表达式语言(EL)8.2.2案例二:在EL中使用隐含对象在表达式语言中提供了11个隐含对象,这些隐含对象包含了绝大多数所要访问的信息,我们可以直接访问这些对象中的信息。1.pageContextJavax.Servlet.jsp.PageContext对象,JSP页面的上下文,它提供了访问ServletContext,Request,Response和Session等对象的方法。例如:${pageContext.request.requestURL}。2.param

类型是java.util.Map,将请求中的参数名和单个字符串值进行映射。主要用于获取应用程序范围内的属性的值,等同于调用ServletRequest.getParameter(Stringname)。例如,要得到页面上一页下一页返回8.2表达式语言(EL)请求参数name的值,则可以有${param.Name}调用。3.paramValues

类型是java.util.Map,将请求中的参数名和一个包含了该参数所有值的String类型的数组进行映射。等同于调用ServletRequest.getParameterValues(Stringname)。例如,要得到客户在页面Habit复选框中选定的值,则有:<c:forEachitems=“${paramValues.Habit}”var=“habit”>${habit</c:forEach>4.header类型是java.util.Map,将请求包头的名字和单个字符串进行映射。主要用于获取请求报头的值,等同于调用ServletRequest.getHeader(Stringname)。例如${header“Host”

}。上一页下一页返回8.2表达式语言(EL)5.headerValues

类型是java.util.Map,将请求包头的名字和一个包含了该包头所有值的String类型数组进行映射,等同于调用ServletRequest.getHeaders(Stringname)。例如,${headerValues“cookie”}。

6.cookie

类型是java.util.Map,将Cookie的名字和一个Cookie对象进行映射。主要用于获取Cookie对象,等同于调用HttpServletRequestgetCookics()。例如,要得到一个名为userinfo的Cookie对象,则有${cookie.userinfo.value}.上一页下一页返回8.2表达式语言(EL)7.initParam类型是java.util.Map,将上下文的初始化参数的名字和单一的值进行映射。主要用于获取Web应用程序初始化参数的值,等同于调用ServletContext.getInitParameter(Stringname)。例如,在web.xml文件中,使用<context-param>元素配置了一个,driver参数,要得到它的值则有${initParam.driver}。8.pageScope类型是java.util.Map,将页面范围内的属性名和它的值进行映射。主要用于获取页面范围内的属性的值。例如,${pageSeope.user,如果user是一个JavaBean对象,还可以直接取出其属性值,即${pageScope.u}。上一页下一页返回8.2表达式语言(EL)9.requestScope类型是java.util.Map,将请求范围内的属性名和它的值进行映射。主要用于获取请求范围内的属性的值。例如,${requestScope.user.age}10.sessionScope类型是java.util.Map,将会话范围内的属性名和它的值进行映射。主要用于获取会话范围内的属性的值。例如,${sessionScope.user.score}。11.applicationScope类型是java.ulil.Map,将应用程序范围内的属性名和它的值进行映射。主要用于获取应用程序范围内的属性的值。例如,${applicationScope.user.email}。上一页下一页返回8.2表达式语言(EL)【案例功能】输出EL中的各种内置对象。【案例目标】掌握EL中常用内置对象的功能与常见使用方法。【案例要点】内置对象的常用方法。【案例步骤】(1)在ch08目录下编写implicit.jsp。【源码】implicit.jsp上一页下一页返回8.2表达式语言(EL)上一页下一页返回8.2表达式语言(EL)上一页下一页返回8.2表达式语言(EL)上一页下一页返回8.2表达式语言(EL)上一页下一页返回8.2表达式语言(EL)【代码说明】第9-13行:设置名字相同范围不同的属性。(2)部署。(3)启动Tomcat服务器后,运行结果如图8-2所示。上一页下一页返回8.2表达式语言(EL)8.2.3

变量在EL中,遇到表达式中的参数时,通过PageContext.findAttribute(“allname”)来查找对应的参数。例如,当遇到表达式${userName}时,将按照。age,request,session,applicalion范围的顺序查找userName属性,如果没有找到这个属性,那么返回null。我们可以利用pageScope,rcquestScope,sessionScope和applicationScop指定范围,例如,${sessionScope.userName}。8.2.4操作符EL定义了以下操作。1.算术操作符在EL中,有5个算术操作符,如表8-2所示。上一页下一页返回8.2表达式语言(EL)说明:对于除法运算A{/,div}B,如果A和B为null,返回(long)0;如果A和B的类型是BigDecimal或BigInteger,将被强制转换为BigDecimal,然后返回A.divide(B,BigDecimal.ROUND

HALF

UP),对于其他情况,则将A和B强制转换为Double,然后进行相除。2.关系操作符在EL中,有6个关系操作符,如表8-3所示)3.逻辑操作符在EL中,有3个逻辑操作符,如表8-4所示。4.Empty操作符

Empty操作符是一个前缀操作符,用于检测一个值是否为null或者为empty。录人,变量A不存在,则${emptyA}为true。上一页下一页返回8.2表达式语言(EL)

5.条件操作符EL中的条件操作符是”?:”,例如,${A?B:C},如果A为true,计算B并返回结果,如果A为false,计算C并返回结果。6.操作符的优先级操作符的优先级如下所示(从高到低,从左到右):上一页下一页返回8.2表达式语言(EL)8.2.5

案例三:在EL中使用函数在EL中,允许定义和使用函数。函数的语法格式为:ns:func(al,a2,…,an)其中前缀ns必须匹配包含了函数的标签库的前缀,func是函数的名字,al,a2,..,an是函数的参数。函数的定义和使用机制类与标签库是一样的。

【案例功能】在EL中使用函数完成参数的中文编码输出。【案例目标】掌握在EL中使用函数的方法。【案例要点】标签描述文件的编写,web.xml配置文件中标签的上一页下一页返回8.2表达式语言(EL)添加,使用EL在页面中调用函数。【案例步骤】(1)在ch08源码目录下编写MyFuncs.java,用于处理字符串转换的逻辑。注意:这个类的函数必须是静态的。【源码】MyFuncs.java上一页下一页返回8.2表达式语言(EL)上一页下一页返回8.2表达式语言(EL)【代码说明】第8行:通过getBytes方法使用指定的字符集将解码为字节序列,并将结果存储到一个新的字节数组中。(2)在WEB-INF文件夹中创建标签描述文件myfunc.tld。【源码】myfunc.tld上一页下一页返回8.2表达式语言(EL)上一页下一页返回8.2表达式语言(EL)【代码说明】①第7行:为该函数标签定义一个名字。②第8行:定义一个公开的URI,用于唯一地标识这个标签库。③第10行:指定EL函数的名称。④第11行:指定实现了该函数的Java类。⑤第12行:指定EL函数的原型,遵照Java语言规范。(3)在web.xml中描述这个标签文件。【源码】web.xml上一页下一页返回8.2表达式语言(EL)上一页下一页返回8.2表达式语言(EL)(4)在ch08目录下编写测试页面test.jsp,数据提交使用第7章的ch07/login.html页面。【源码】test.jsp上一页下一页返回8.2表达式语言(EL)①第2行:uri为“/myfuncs”的标签,将其前缀设置为myfn。②第5行:myfn:trans表示使用myfn作为前缀所指定的标签中的trans函数,将客户端提交的username参数以ISO-8859-1编码并通过EL输出(5)启动Tomcat服务器后,运行结果如图8-3和图8-4所示。(6)若不使用该函数,在test.jsp代码的第5行仅用${param.username}输出username运行结果为乱码,如图8-5所示。上一页返回8.3JSTL核心标签库JSTL核心标签库主要有一般用途标签,条件标签,迭代标签和URL相关的标签,如表8-5所示。在JSP页面中使用核心标签库的标签,需要用taglib指令指明该标签库的路径:下一页返回8.3JSTL核心标签库8.3.1

一般用途标签一般标签包括<c:out>,<c:set>,<c:remove>,<c:catch>。1.<c:out><c:out>用于计算一个表达式并将结果输出到当前的JspWriter对象。<c:out>标签的功能类似于JSP的表达式<%=expression%>,或者EL表达式$i{expression}。语法1:没有标签体的情况。上一页下一页返回8.3JSTL核心标签库语法2:有标签体的情况。<c:out>的标签体可以使用JSP代码,<c:out>的属性如表8-6所示。说明:动态的值是指属性的值可以是Java表达式,EL表达式或者通过<jsp:attribute>设置的值。示例1:页面输出“JSTL标签测试!<br>”。上一页下一页返回8.3JSTL核心标签库示例2:页面输出“JSTL标签测试!”(回车)。2.<c:set><c:set>用于在某个范围Request,Session,Application等中设置。语法1:使用value属性设置一个特定范围中的属性。语法2:在标签体中设置一个特定范围中的属性。上一页下一页返回8.3JSTL核心标签库语法3:设置某个特定对象的一个属性。语法4:在标签体中设置某个特定对象的一个属性。<c:set>的属性如表8-7所示上一页下一页返回8.3JSTL核心标签库示例1;设置userName的属性为hellking“zhangsan”var=“username”/>示例2;设置password属性,属性值在标签体内。示例3;设置JavaBean-use:的属性userName的值为zhangsan。3.<c:remove><c:remove>用于删除某个变量或属性。语法:上一页下一页返回8.3JSTL核心标签库<c:remove>的属性如表8-8所示。示例:删除session范围内的IdelTime变量。4.<c:catch><c:catch>用于捕获嵌套在其标签体中的操作所派出的异常。语法:<c:catch>的属性如表8-9所示。上一页下一页返回8.3JSTL核心标签库说明:<c:catch>允许页面作者以一种统一的方式来处理任何操作抛出的异常。将可能抛出异常的代码放在<c:catch>>和<c:catch>>之间,如果其中的代码抛出异常,异常将被捕获,并被保存在var所表示的范围变量中。如果没有异常发生,而var所标识的范围变量存在,则它将被移除。示例:结果:页面输上一页下一页返回8.3JSTL核心标签库8.3.2

条件标签条件标签包括<c:if>,<c:choose>,<c:when>,<c:otherwise>1.<c:if><c:if>用于进行条件判断。语法1:没有标签体的情况。语法2:有标签体的情况。上一页下一页返回8.3JSTL核心标签库<c:if>的属性如表8-10所示。说明:如果属性test计算为true那么标签体将被JSP容器执行。对于语法1,var属性必须提供,用于保存条件结果的范围变量做进一步的判断。示例:根据用户年龄判断能否访问网页对不起,你的年龄太小,不能访问该页!</c:if>2.<c:choose>.<c:when>.<c:otherwise><c:choose>,<c:when>,<c:otherwise>一起实现互斥条件的执行。语法:上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库

说明:在运行时,判断<c:when>标签的测试条件是否为true,第一个测试条件为true的<c:when>标签的标签体被执行;如果没有满足条件的<c:when>标签,那么<c:otherwise>的标签体将被执行。示例:根据当前时间向客户问好上一页下一页返回8.3JSTL核心标签库8.3.3

迭代标签迭代标签有<c:forEach>和<c:forTokens>。<c:forEach><c:forEach>用于对包含了多个对象的集合进行迭代,重复执行它的标签体,或者重复迭代固定的次数。语法1:对包含了一系列的集合进行迭代。上一页下一页返回8.3JSTL核心标签库语法2:迭代固定的次数<c:forEach>的属性如表8-11所示。说明:假若有begin属性时,begin必须大于或等于0;假若有end属性时,必须大于begin;假若有step属性时,step必须大于或等于0。上一页下一页返回8.3JSTL核心标签库示例:循环输出指定用户信息。上一页下一页返回8.3JSTL核心标签库2.<c:forTokens><c:forTokens>用于迭代字符串中有分隔符分隔的各成员。语法:<c:forTokends>的属性如表8-12所示。上一页下一页返回8.3JSTL核心标签库示例:分隔字符串。上一页下一页返回8.3JSTL核心标签库8.3.4URL相关标签URL相关标签包括页面包含标签<c:import>、超链接标签<c:url>,重定向标签<c:redirect>和参数传递标签<c:param>。1.<c:param><c:pasatn>标签的作用是为<c:import>,<c:url>,<c:redirect>标签添加请求参数。语法1:在value属性中指定参数值。<c:paratnname=“name”value=“value”/>语法2:在标签体中指定参数。上一页下一页返回8.3JSTL核心标签库<c:paratn>的属性如表8-13所示。2.<c:import><c:import>用于导入一个机遇URL的资源。这个标签类似于<jsp:include>动作元素。<c:import标签不仅可以在页面中导入同一个Web应用程序下的资源,还可以导入不同Web应用程序下的资源,甚至是其他网站的资源。上一页下一页返回8.3JSTL核心标签库语法1:资源的内容作为String对象被导出。语法2:资源的内容作为Reader对象被导出。上一页下一页返回8.3JSTL核心标签库<c:import>的属性如表8-14所示。示例:导入Web应用程序ch07中的login.jsp页面,并向页面传递参数。上一页下一页返回8.3JSTL核心标签库3.<c:url><c:url>标签主要用来产生一个URL。语法1:没有标签体。语法2:有标签体,并在标签体中指定参数。上一页下一页返回8.3JSTL核心标签库<c:url>的属性如表8-15所示。示例1:生成一个URL链接地址。示例2:生成一个带参数的URL地址。示例2代码将生成http://www.eqepc.Cn?

message=Hello的URL地址。上一页下一页返回8.3JSTL核心标签库4.<c:redirect><c:redirect>标签将客户的请求重定向到另一个资源。语法1:没有标签体语法2:有标签体,并在标签体中指定参数。<c:url>的属性如表8-16所示。上一页下一页返回8.3JSTL核心标签库示例:以上代码实现将页面跳转到getParam.jsp,并向新的页面传递一个名为paramName值为Hello的参数。上一页下一页返回8.3JSTL核心标签库8.3.5

案例四:使用JSTL核心标签库【案例功能】使用JSTL核心标签库中的标签实现JSP页面的信息输出【案例目标】掌握在JSTL核心标签库中常见标签的用法。【案例要点】各种标签中的属性的含义和功能。【案例步骤】(1)在ch08源码目录下编写页面JSTLCoreTag.Jsp。【源码】JSTLCoreTag.jsp上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库上一页下一页返回8.3JSTL核心标签库【代码说明】①第2行:用taglib指令指明核心标签库的路径。②第16行:使用<c:set>标签设置“sessionVariable”变量的值为“sessionVariableValue”。③第26-30行:使用<c:out>标签的两种表示方法输出“sessionVariable”变量的值。④第39行:使用<c:remove>标签删除变量“sessionVariable”。⑤第57行:使用<c:forEach>标签循环输出数字1到l0。⑥第67-68行:使用<c:forTokens>标签以“#,;4”作为分隔符,以第3个字符开始,第10个字符结束,步长为2的循环提取字符串“0#1,2,34,5,6#,7;8,9,A,B,C#,;4D”中的字符。上一页下一页返回8.3JSTL核心标签库⑦第81-85行:使用<c:if>标签判断变量“sessionVariable”是否为空并输出相应信息。⑧第103-110行:使用<c:choose>,<c:when>,<c:otherwise>标签判断变量“sessionVariable”变量的情况并作相应输出。⑨第114-120行:使用<c:forEach>标签循环输出10个复选框。⑩第132-136行:使用<c:forEach>标签接提交的被选中的复选框。(2)部署。(3)启动Tomcat服务器,运行效果如图8-6所示。上一页返回8.4

其他JSTL标签8.4.1JSTL国际化标签库在不同国家和地区,对数字和货币等的表示有所不同,在JSTL中提供了fml标签库来处理国际化和格式的问题。在JSP页面中使用国际化标签库的标签,需要用taglib指令指明该标签库的路径:1.<fmt:setLocale>作用:设定用户的语言区地区。语法:下一页返回8.4

其他JSTL标签属性如下(1)value:地区代码。其中最少要有两个字母的语言代码,如zh,en,然后也可以再加上两个字母的国家和地区代码,如:US,TW,两者可以由“_”或“

”相连接起来,例如,zh

TW,zh

CN,en,en

US。假若value为null时,则使用执行中的默认地域(locale)。(2)varient:供货商或浏览器的规格,例,WIN代表Windows,Mac代表Macintosh。(3)scope:地区设定的套用范围。2.<fmt:requestEncoding>作用:设定字符串编码,功能和ServletRequest.setCharacterEncoding(

)相同。上一页下一页返回8.4

其他JSTL标签语法:属性:value为字符串编码,当我们设定value为GB2312时,表示将所有传送过来的字符串皆用GB2312编码处理,如果没有设定value属性,则它将会自动去寻找合适的编码方式。3.<fmt:message>作用:从指定的资源中把特定关键字中的值抓取出来。语法如下。上一页下一页返回8.4

其他JSTL标签上一页下一页返回8.4

其他JSTL标签属性如下。(1)key:索引。(2)bundle:使用的数据来源。(3)var:用来储存国际化信息。(4)scope;var变量的JSP范围。4.<fmt:param>作用:动态设定数据来源中抓出内容的参数。语法如下。(1)通过value属性设定参数值。上一页下一页返回8.4

其他JSTL标签(2)通过本体内容设定参数值。<fmt:param>本体内容</fmt:param>

示例:Str3=todayis{0,date}其中{0,date}表示为一个动态变量,0代表第一个动态变量;date代表该动态变量的类型。5.<fmt:bundle>作用:设定本体内容的数据来源。上一页下一页返回8.4

其他JSTL标签语法:<fmt:bundlebasename=“basename”

prefix=“prefix”>本体内容</fmt:bundle>属性如下。(1)basename

:要使用的资源名称,如果我们的properties文件为Resource,properties,那么basename的值为Resource,basename的值千万不可有任何文件类型。(2)prefix;设定前置关键字。例,当properties中内容如下。requestinfo.label.method=Method;requestinfo.label.requesturi=RequestURI;

上一页下一页返回8.4

其他JSTL标签那么我们可以写成如下方式将其内容显示出来。6.<fmt:setBundle>作用:设定默认的数据来源,或者也可以将它设定到属性范围中。语法:上一页下一页返回8.4

其他JSTL标签属性如下。(1)basename:要使用的资源名称。(2)var:储存资源的名称。(3)scope:var变量的JSP范围。说明:basename设定要使用的数据源,和<fmt:bundle>用法相同。如果没有设定var时,那么设定好的数据来源将会变成默认的数据来源,使在同一网页或同一属性范围中<fmt:message>都可以直接默认使用此数据来源。相反,如果设定var时,那么将会把此数据来源存人varName中,当<fmt:message>要使用时,必须使用bundle这个属性来指定。举例如下。上一页下一页返回8.4

其他JSTL标签如没有设定var时,则只需写成如下。上一页下一页返回8.4

其他JSTL标签一般<fmt:bundle>和<fmt:setBundle>都可以搭配<fmt:setLocale>使用,当我们有多种语言的数据业来源时,可以将文件名取成ResourcezhTW.properties,Resourceen.properties和Resouce.properties当我们将区域设定为zhTW,那么使用<fmt:setBundle>或<fmt:bundle>时,将会默认读取ResourcezhTW.properties资源文件,如果<fmt:setLocale>设定为en时,那么会默认抓取Resouce

en.properties来使用,最后如果设定的区域没有符合的文件名,将使用Resouce.properties来当做数据来源。7.<fmt:formatNumber>作用:依据设定的区域将数字改为适当的格式。上一页下一页返回8.4

其他JSTL标签语法:示例:8.<fmt:parseNumber>作用:将字符串类型的数字,货币或百分比,都转为数字类型。语法:上一页下一页返回8.4

其他JSTL标签示例:9.<fmt:formatDate>作用:格式化日期和时间。语法:上一页下一页返回8.4

其他JSTL标签示例:10.<fmt:parseDate>作用:将字符串类型的时间或日期都转为日期时间类型。语法:示例:11.<fmt:setTimeZone>作用:设定默认时区或是将时区储存至属性范围中,方便以后使用。语法:上一页下一页返回8.4

其他JSTL标签属性valut:可以为EST,CST,MST和PST,默认为GMT时区。示例:12.<fmt:timeZone>作用:设定暂时的时区。语法:示例:上一页下一页返回8.4

其他JSTL标签8.4.2JSTL数据库标签库数据库开发在JSP中占有非常重要的地位,JSTL也提供了对数据库操作的支持,通过JSTL数据库中的标签可以简化数据库操作,提高数据库开发的效率和程序的可维护性。在JSP页面中使用数据库标签库的标签,需要用taglib指令指明该标签库的路径:1.<sql:setDataSource>作用:用来设定数据来源(DataSource)。语法如下。(1)直接使用已存在的数据来源。上一页下一页返回8.4

其他JSTL标签(2)使用JDBC方式,建立数据库联机。上一页下一页返回8.4

其他JSTL标签示例如下。上一页下一页返回8.4

其他JSTL标签2.<sql:query>作用:查询数据库的数据。语法如下。(1)没有本体内容。上一页下一页返回8.4

其他JSTL标签(2)本体内容为查询指令。上一页下一页返回8.4

其他JSTL标签属性如下。(1)sql:SQL语句(select)。(2)dataSource:数据来源。(3)maxRows;设定最多可暂存的数据笔数。(4)startRow;设定数据从第儿笔开始,以0为第一笔数据。(5)var:储存查询结果,必需的。(6)

scope:var变量的JSP范围。查询结果存放在指定名称的属性中后,可以通过以下属性访问查询结果。(1)rows:以字段名称当做索引的查询结果。(2)

rowsByIndex:以数字当做索引的查询结果。上一页下一页返回8.4

其他JSTL标签(3)columnNames:字段名称。(4)rowCount:查询到的数据笔数。(5)limitedByMaxRows:取出最大数据笔数的限制。3.<sql:update>作用:执行修改操作(update,delete,createtable均可)。语法如下。(1)没有本体内容。上一页下一页返回8.4

其他JSTL标签(2)本体内容为查询指令。上一页下一页返回8.4

其他JSTL标签属性如下。(1)sql;SQL语法(update,insert,delet…)。(2)dataSource:数据来源。(3)var:储存改变的数据笔数。(4)scope;var变量的JSP范围。4.<sql:transaction>作用:提供事务支持,保证多个数据操作的完整性。<sql:

transaction>主要是将所有必须同时执行的交易放在它的本体内容中,当本体内容有错误发生时,将不会执行任何一个SQL语句,所以可保障交易机制的安全性。上一页下一页返回8.4

其他JSTL标签语法:上一页下一页返回8.4

其他JSTL标签8.4.3XML操作标签库JSTL提供了一组专门处理XML文档的标签,这些标签提供的功能可以满足基本的XML文档处理需要,使用这些标签比掌握复杂的操作XML文档的API接口容易得多。在JSP页面中使用XML标签库的标签,需要用taglib指令指明该标签库的路径:1.<x:parse>作用:解析xml文件。语法如下。上一页下一页返回8.4

其他JSTL标签上一页下一页返回8.4

其他JSTL标签属性如下。(1)doc:xml文件。(2)var:储存解析后的XML文件。(3)scope:var变量的JSP范围。示例如下。上一页下一页返回8.4

其他JSTL标签2.<x:out>作用:取出XML中的字符串。语法:属性如下:(1)select:XPath语句。(2)escapeXml:是否转换特殊字符。示例:上一页下一页返回8.4

其他JSTL标签显示<name>的内容。上一页下一页返回8.4

其他JSTL标签3.<x:set>作用:取出XML中的字符串,储存至属性范围中。语法:属性如下:(1)select:XPath语句。(2)var:将从XML文件中取得的内容储存至varName中。(3)scope:var变量的JSP范围示例:上一页下一页返回8.4

其他JSTL标签显示<name>的内容。上一页下一页返回8.4

其他JSTL标签8.4.4Functions操作标签库Functions标签库是在JSTL中定义的标准EL函数集。在Functions标签库中定义的函数,基本上都是对字符串进行操作的函数。在JSP页面中使用国际化标签库的标签,需要用taglib指令指明该标签库的路径:1.fn:contains(

)作用:判断某字符串是否在一字符串之中。语法:${fn:contains(string,substring)}=

>boolean属性如下。上一页下一页返回8.4

其他JSTL标签(1)string:原输入的字符串。(2)substring:测试用的字符串。(3)Result:回传string是否包含substring,若有,则回传true;若无,则回传false。2.fn:containslgnoreCase(

)作用:判断某字符串是否在已有字符串之中,并忽略其大小写。语法:${fn:containslgnoreCase(string,substring)}=

>Boolean3.fn:startsWith(string,prefix)作用:判断一字符串是否以某一字符串为开头。语法:${fn:startsWith(string,prefix)}=

>Boolean上一页下一页返回8.4

其他JSTL标签4.fn:endsWith(string,suffix)作用:判断一字符串是否以某一字符串为结尾。语法:${fn:endsWith(string,suffix)}=

>Boolean5.fn:escapeXml(String)作用:用来转换转义符。例如,将<,>,,”和&转换成<,>'"和&。语法:${fn:escapeXml(String)=

>String6.fn:indexOf(string,substring)作用:回传某字符串到一字符串第一次吻合的位置。语法:${fn:indexOf(string,substring)}=

>int上一页下一页返回8.4

其他JSTL标签7.fn:split(string,delimiters)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论