第九章、使用JSTL标签库.ppt

上传人:s****8 文档编号:82777753 上传时间:2023-03-26 格式:PPT 页数:154 大小:1.44MB
返回 下载 相关 举报
第九章、使用JSTL标签库.ppt_第1页
第1页 / 共154页
第九章、使用JSTL标签库.ppt_第2页
第2页 / 共154页
点击查看更多>>
资源描述

《第九章、使用JSTL标签库.ppt》由会员分享,可在线阅读,更多相关《第九章、使用JSTL标签库.ppt(154页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第九章第九章 使用使用JSTL标签库标签库 JSP定制标签简介定制标签简介JSTL 1.0简介简介EL语言简介语言简介核心标签库核心标签库(Core tag library)数据库标签库数据库标签库在本节中,您将了解以下内容:在本节中,您将了解以下内容:什么是JSP定制标签如何使用JSP定制标签库第三方定制标签库 JSP定制标签简介定制标签简介什么是什么是JSP定制标签定制标签J JS SP P定定制制标标签签简简介介9.19.1节节混乱的JSP页面JSP页面使用的语法与HTML相似,很容易生成动态WEB页面。在JSP页面中使用Java脚本使得JSP页面的编制非常简单和灵活。但是,如果JSP页

2、面中含有太多的脚本,将会使得JSP页面凌乱不堪,毫无维护性可言。如:%String items=cart.getItems();for(int i=0;i JSP定制标签简介定制标签简介9.1.1 什么是什么是JSP定制标签定制标签J JS SP P定定制制标标签签简简介介9.19.1节节简化简化JSP页面的二种方案页面的二种方案1.JavaBean在JSP中使用JavaBean可以使JSP页面获得简化。但缺点是它不知道所处页面的外在环境JSP页面编制人员使用时也很不直观。2.JSP定制标签定制标签在JSP中使用JSP定制标签替代JSP脚本元素JSP定制标签由Web服务器端一个特殊的Java类

3、来处理,该类称作Tag Handler(标签处理器)J JSPSP定制标签示例定制标签示例:JSTL Helloworld Your Browser:9.1.1 什么是什么是JSP定制标签定制标签J JS SP P定定制制标标签签简简介介9.19.1节节将要用的标签库引用到将要用的标签库引用到JSP中中标签库中包含多个不同功能标签标签库中包含多个不同功能标签使用使用JSP标签标签输出一行输出一行在标签中,可轻松访问隐含对象在标签中,可轻松访问隐含对象标签处理器将标签分成几个部分标签处理器将标签分成几个部分从左至右依次处理:从左至右依次处理:1、9.1.1 什么是什么是JSP定制标签定制标签J

4、JS SP P定定制制标标签签简简介介9.19.1节节在在JSPJSP页面中用定制标签代替脚本元素,具有以下好处:页面中用定制标签代替脚本元素,具有以下好处:定制标签可重用性强,可以节省开发和测试时间定制标签提高了JSP的可读性和可维护性可以对定制标签定义属性,给定制标签属性赋值定制标签可以访问JSP页面的所有隐含对象定制标签可以嵌套从JSP 2.0版后,提倡用定制标签取代小脚本元素9.1.1 什么是什么是JSP定制标签定制标签J JS SP P定定制制标标签签简简介介9.19.1节节定制标签库定制标签库定制标签库是包含一个或多个定制标签的包定制标签库由以下几个部分组成:若干个标签处理器(若干

5、个标签处理器(Tag Handler)标签处理器是一个实现javax.servlet.jsp.tagext.Tag接口的Java类,定制标签的功能由该类来实现一个定制标签对应一个标签处理器标签库描述标签库描述TLD文件文件(Tag Library Descriptor File)是后缀为.tld的XML文件包含了定制标签的元信息,如定制标签的名称、属性、标签处理器类等信息。9.1.2 如何使用如何使用JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节在在JSPJSP中使用定制标签的步骤:中使用定制标签的步骤:在web.xml文件中添加对定制标签库TLD文件的

6、引用在JSP页面中通过taglib指令元素引入要使用的定制标签库在JSP页面中调用定制标签一、在一、在web.xmlweb.xml文件中添加对定制标签库文件中添加对定制标签库TLDTLD文件的引用。文件的引用。调用元素来说明。元素包含两个子元素:指定TLD文件所对应的URI。:指定TLD文件的存放位置。示例:在web.xml内添加TLD文件:.http:/ /WEB-INF/MyTL.tld .9.1.2 如何使用如何使用JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节此处的此处的uri并不是真实的并不是真实的uri而是对而是对TLD文件位置的一种命名方式

7、,文件位置的一种命名方式,可以看作是可以看作是TLD文件的一个别名文件的一个别名在在Web.XML中配置标签库之前,应中配置标签库之前,应确保已经将标签库及其确保已经将标签库及其TLD文件拷贝文件拷贝到到Web应用下的指定位置。应用下的指定位置。9.1.2 如何使用如何使用JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节二、在二、在JSP页面中包含对要使用的定制标签的引用。页面中包含对要使用的定制标签的引用。在JSP内使用定义标签之前,要先在JSP内使用taglib指令来声明TLD所在的位置。taglib指令包含两个属性:uri:指明定制标签的TLD所在的

8、位置。uri属性应与web.xml文件中声明的元素的值相同。prefix:指定在JSP内使用定制标签时的前置字符串(前缀)。示例:注意:注意:该uri并不是标明标签库存放的网络位置,而是TLD文件的别名,该别名应与Web.XML中元素值相同在JSP中调用该标签库的标签时,都要添加该前缀 如:9.1.2 如何使用如何使用JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节三、在三、在JSP中调用定制标签中调用定制标签定制标签的语法格式是与HTML相似的,例如:其功能与下面的脚本元素相同(依MyTL:out 的定义而异):利用标签,可以在简洁的语法中实现比上例更复

9、杂的功能。9.1.2 如何使用如何使用JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节当遇到以下标签时,JSP引擎处理步骤如下:翻译成 并执行查找指令,获取前缀 c对应于的标签 uri根据uri,在Web.XML文件中找到TLD文件位置在TLD文件中找到标签处理器类文件的位置并加载它9.1.3 第三方第三方JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节建议使用专业软件厂家建议使用专业软件厂家(第三方第三方)开发的定制标签库开发的定制标签库与自行开发定制标签相比,使用专业软件厂家提供的标签库具有如下优势专业软件厂家提供

10、的标签库都经过了认真的测试、调试,并提供了比较详细的文档,质量有保证不少专业软件厂家提供的标签库是开源且免费的,例如Struts、Jakarta Taglibs等开放源代码项目,可以节省开发成本9.1.3 第三方第三方JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节如何选用如何选用专业软件厂家开发的专业软件厂家开发的定制标签库定制标签库除了成本和开发周期上的考虑外,在选择专业软件厂家开发的标签库时还应考虑以下几点:JSP版本版本通常定制标签库都是基于某一特定的JSP版本开发的,较高JSP版本平台上开发的标签库是不能在较低的JSP服务器上使用的,例如,JST

11、L1.1版本标签库只能在支持Servlet2.4/JSP2.0版本的Web服务器(Tomcat 5.x)上正常使用是否得到广泛支持是否得到广泛支持应注意该标签库是否得到了广泛的技术支持。虽然不是必须的,但考虑到升级与维护等问题,特别是商业化标签库,这点十分重要。是否遵循规范的标准是否遵循规范的标准考察该标签库是否代表或实现了某种标准。最好采用代表或实现某种标准的标签库,便于今后的升级与维护。9.1.3 第三方第三方JSP定制标签库定制标签库 J JS SP P定定制制标标签签简简介介9.19.1节节免费的专业软件厂家开发的定制标签库免费的专业软件厂家开发的定制标签库目前免费的、且得到广泛应用的

12、定制标签库有:Struts Framwork标签库标签库Jakarta TaglibsJSP标准标签库标准标签库(JSTL,JSP Standard Tag Library)本章将详细讲解JSTL标准标签库标准标签库 1.0版版第九章第九章 使用使用JSTL标签库标签库 JSP定制标签简介定制标签简介JSTL 1.0简介简介EL语言简介语言简介核心标签库核心标签库(Core tag library)数据库标签库数据库标签库在本节中,您将了解在本节中,您将了解JSTL1.0JSTL1.0的常识,掌握在的常识,掌握在JSPJSP页面中页面中使用使用JSTLJSTL标签库的步骤和方法:标签库的步骤和

13、方法:1.将将JSTL部署到部署到Web应用中应用中2.在在Web.xml中配置中配置JSTL库库3.在在JSP页面中引用页面中引用JSTL库库4.在在JSP页面中使用页面中使用JSTL标签标签 JSTL 1.0简介简介什么是什么是JSTLJSTL 1.0简简介介9.29.2节节What?JSTL全名为JavaServer Pages Standard Tag Library,是由JCP(Java Community Process)所制定的标准规范,它的实现形式主要是提供给Java Web开发人员一个标准通用的标签函数库。Where?JSTL目前广泛应用的版本是1.0,最新的版本为1.1版,

14、都是可免费下载的。在使用JBuilder9.0开发Web应用程序时,也可获得一个其随带的JSTL1.0。How?Web程序员能够非常简洁地利用JSTL和JSP表达式语言(EL,Expression Language)来开发Web应用程序,而不是在页面上嵌入Java程序(JSP 脚本)的做法,这样可以提高程序的阅读性、维护性和方便性。JSTL 1.0简介简介9.2.2 将将JSTL部署到部署到Web应用应用JSTL 1.0简简介介9.29.2节节JSTL标签库是可以免费下载的,其二进制下载地址为:http:/jakarta.apache.org/builds/jakarta-taglibs/re

15、leases/standard/JSTL 标签库的源代码也可以下载,地址为:http:/jakarta.apache.org/builds/jakarta-taglibs/nightly/src若选择前者,下载得到的jakarta-taglibs-standard-current.zip是已编译的二进制文件。解压缩该文件,然后将其中的三个JAR文件(分别是standard.jar、jstl.jar、js.jar)复制到自己的Web应用程序的以下目录中:WEB-INF/lib这样我们的Web应用程序的JSP页面中就可以使用JSTL标签库了。9.2.2 将将JSTL部署到部署到Web应用应用JST

16、L 1.0简简介介9.29.2节节JSTL所提供的标签函数库从功能上主要分四大类,如表所示:分类分类前缀前缀URI示例示例核心标签库核心标签库 c http:/ I18N格式标签库 fmt http:/ SQL标签库标签库 sql http:/ XML标签库 xml http:/ 函数标签库fnhttp:/ Language)和RT(JSP请求时表达式)两个函数库EL标签库完全应用Expression Language,使用简单,建议使用。RT标签库则由于使用JSP脚本、使用较麻烦,不推荐使用。EL已并入JSTL 2.0版中,不再划分EL和RT,且可在JSP直接用EL 9.2.2 在在Web.

17、xml中配置中配置JSTL库库JSTL 1.0简简介介9.29.2节节为了在Web应用中引用JSTL,还需在web.xml文件中添加对JSTL各TLD文件的引用,如:.http:/ /WEB-INF/c.tld http:/ /WEB-INF/sql.tld .9.2.2 在在Web.xml中配置中配置JSTL库库JSTL 1.0简简介介9.29.2节节若使用JBuilder9.0开发项目,则我们可在创建Web应用项目时,将JSTL库文件引入Web应用中,可达到配置Web.XML文件的效果。选择选择JSTL1.0后后JBuilder会将会将JSTL库文件拷贝放入库文件拷贝放入Web应用的适当位

18、置应用的适当位置并且在并且在Web.XML中中建立建立映射映射9.2.3 在页面中引用在页面中引用JSTL库库JSTL 1.0简简介介9.29.2节节为了在JSP页面中使用JSTL标签作准备,应在JSP页面前部添加下列的taglib指令代码:uri属性:应与web.xml文件中声明的元素的值相同prefix属性:可由用户自行设置,但对JSTL常用约定的前置名称该指令将所有c打头的JSP标签与别名为http:/ 在页面中引用在页面中引用JSTL库库JSTL 1.0简简介介9.29.2节节在JBuilder9.0中添加新JSP页时,也使用以下操作完成相同结果。若选中若选中JSTL 1.0/core

19、新创建的新创建的JSP页面将包页面将包含对含对JSTL1.0核心库核心库EL版的引用版的引用注意注意:JSTL 1.0/core RT 代表代表JSTL1.0核心库核心库EL版,一般不用版,一般不用9.2.4 在在JSP页面中使用页面中使用JSTL标签标签 JSTL 1.0简简介介9.29.2节节当上述步骤都执行后,Jbuilder将自动完成下列操作:在Web-info/lib目录下有了JSTL的一份拷贝;在Web.XML文件中使用元素对JSTL的相关标签库进行了映射在JSP页面文件前段添加了指令元素此后就可以在JSP页面中使用JSTL标签。例如,在需要的地方添加:9.2.4 在在JSP页面中

20、使用页面中使用JSTL标签标签 JSTL 1.0简简介介9.29.2节节示例:一个使用了JSTL标签的JSP页面程序:-HelloJSTL.jsp-JSTL HelloworldYour Browser:9.2.4 在在JSP页面中使用页面中使用JSTL标签标签 JSTL 1.0简简介介9.29.2节节HelloJSTL.jsp运行结果如下:9.2.4 在在JSP页面中使用页面中使用JSTL标签标签 JSTL 1.0简简介介9.29.2节节几点说明:上述Web.xml和中uri和prefix都是采用约定俗成命名,你也可以自行命名uri和prefix,例如:将uri指定成http:/mycomp

21、any/anyName,将prefix指定成为MyTL并在Web.xml和JSP页面中进行相应的修改即可。但是这样做有以下弊端:由于不是约定俗成的命名,因此不受JBuilder等通用开发环境的支持;不便于交流;不便于uri和前缀名称的维护对于JSTL,可省略Web.XML文件中的元素配置工作这时,JSP引擎将使用约定俗成的uri表示各JSTL库。如:用http:/ 表示JSTL核心EL库。第九章第九章 使用使用JSTL标签库标签库 JSP定制标签简介定制标签简介JSTL 1.0简介简介EL语言简介语言简介核心标签库核心标签库(Core tag library)数据库标签库数据库标签库学习目标学

22、习目标通过本节的学习,您将能够熟练掌握EL表达式语言的基本语法,并能够在编写JSP时熟练应用EL表达式语言。EL语言简介语言简介EL语言简介语言简介什么是什么是JSP EL语言语言EL语语言言简简介介9.39.3节节EL全名为Expression Language,它是JSTL 1.0为方便存方便存取数据取数据所自定义的语言,使用起来非常简洁。在JSP 2.0版本中,EL已经正式纳入其标准规范。只要是支持Servlet 2.4 和JSP 2.0的Web容器,都可以在JSP网页网页中直接使用中直接使用EL(这之前只能在JDSL标签中使用EL)。Tomcat 5.x,JBuilder X支持Ser

23、vlet 2.4 和JSP 2.0除了JSP 2.0建议使用EL之外,JavaServer Faces(JSR-127)也考虑将EL纳入规范,由此可知,EL如今已经是一项成熟、标准的技术。什么是什么是JSP EL语言语言EL语语言言简简介介9.39.3节节在本节中,主要学习以下内容在本节中,主要学习以下内容1EL基本语法(在javax.servlet.jsp.el中定义)2EL隐含对象的概念3EL运算符的概念在本小节中,主要学习以下内容在本小节中,主要学习以下内容1 与与 运算符运算符2 2ELEL变量变量3 3自动类型转换自动类型转换4 4ELEL保留字保留字9.3.1 EL基本语法基本语法

24、EL语语言言简简介介9.39.3节节9.3.1 EL基本语法基本语法EL语语言言简简介介9.39.3节节EL基本语法:EL中最重要的部分是表达式。其语法格式:$表达式 以$起始、以起始、以结尾的结尾的字符串字符串表达式由变量、隐含对象和运算符等组成例如:$sessionScope.user.sex上面EL表达式含义:从Session作用范围中,取得属性user的属性sex。它的作用与下面的JSP 脚本一致:User user=(User)session.getAttribute(user);String sex=user.getSex();两相比较,EL表达式更加简洁 9.3.1 EL基本语法

25、基本语法EL语语言言简简介介9.39.3节节1.与 运算符EL表达式中以.和 两种运算符来存取对象的属性数据,如$sessionScope.user.sex$sessionScope.usersex需要说明的是1.上述两个表达式是等价的,而且.和 在很多情况下是可混用的:$sessionScope.shoppingCart3.price2.但当属性名中包含一些特殊字符,如.或等符号时,只能用,例如正确写法:$headerUser-Agent 错误写法:$header.User-Agent1.若属性名仅在运行时才能确定(即动态取值),只能用 。例如:$sessionScope.userdata,

26、data是一个变量 当data的值是sex时,实际表达式为$sessionScope.user.sex 当data值是name时,实际表达式为$sessionScope.user.name9.3.1 EL基本语法基本语法EL语语言言简简介介9.39.3节节2.EL变量(EL隐含对象的属性)EL有四个隐含对象(见下一小节),可以存取对象属性示例:$xxxScope.user 访问xxxScope范围内的user属性说明:若EL表达式中没有指定作用范围,例如$user标签处理器将依照Page、Request、Session、Application的顺序在作用范围中找指定变量(隐含对象属性)。若中途

27、找到username就返回,否则返回null。EL变量(属性)有四个作用范围:属性范围属性范围EL表示表示示例示例说说 明明PagePageScope$pageScope.user获取Page范围的user属性RequestRequestScope$requestScope.user获取Request范围的user属性SessionSessionScope$sessionScope.user获取Session范围的user变量ApplicationApplicationScope$applicationScope.user获取Application范围user属性该表达式等价于求下列变量该表达

28、式等价于求下列变量user的值:的值:User user=(User)application.getAttribute(user);9.3.1 EL基本语法基本语法EL语语言言简简介介9.39.3节节9.3.1 EL基本语法基本语法EL语语言言简简介介9.39.3节节3.自动类型转换EL除了能够获取对象属性值外,还能够对对象属性值进行自动类型转换示例:$param.count+20从请求参数中读取count参数,标签处理器自动将count参数从String类型转换为int类型,求加上20的和,做为属性值它的作用与下面的JSP脚本元素等价:9.3.1 EL基本语法基本语法EL语语言言简简介介9.

29、39.3节节4 4、ELEL保留字保留字EL的保留字有16 个:mod、divand、or、notinstanceofeq、ne、lt、gt、le、geempty、true、false、null在EL表达式中给变量命名时,需要避开上述的名字,以免程序编译时发生错误。在本小节中,主要学习以下内容在本小节中,主要学习以下内容1 1与范围与范围(Scope)(Scope)相关的隐含对象相关的隐含对象1pageScoperequestScopesessionScopeapplicationScope2 2与存取用户输入有关的隐含对象与存取用户输入有关的隐含对象paramparamValues3cook

30、ie4header和和headerValues5initParam6pageContext9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节EL隐含对象概念与JSP类似,EL也有11个隐含对象。这些隐含对象的功能与JSP隐含对象功能类似:不必创建和初始化,可在不必创建和初始化,可在EL表达式中直接引用的表达式中直接引用的示例:$param.countparam即为一隐含对象等价下列JSP脚本元素:类别类别隐含对象隐含对象类类 型型功能说功能说 明明与作用范围相关pageScope java.util.Map

31、用于获取Page范围的属性变量值 requestScope java.util.Map 用于获取Request范围的属性变量值sessionScope java.util.Map 用于获取Session范围的属性变量值applicationScope java.util.Map 用于获取Application范围的属性变量值与输入有关param java.util.Map 读取指定的用户请求参数,等价于ServletRequest对象的getParameter()paramValues java.util.Map 读取指定的用户请求参数列表,等价于ServletRequest对象的getPar

32、ameterValues()其他header java.util.Map 等价于HttpServletRequest对象的getHeader()方法headerValues java.util.Map 等价于HttpServletRequest对象的getHeaders()cookie java.util.Map 等价于HttpServletRequest对象的getCookies()initParam java.util.Map 等价于ServletContext对象的getInitParameter()pageContext Javax.servlet.jsp.PageContext 表示

33、当前JSP的的PageContext对象EL表达式的表达式的11个隐含对象个隐含对象:说明:说明:与作用范围相关有关的四个隐含对象:与作用范围相关有关的四个隐含对象:pageScope,requestScope,sessionScope和和 applicationScope的功能,等价于调用的功能,等价于调用JSP对应隐含对象的对应隐含对象的 getAttribute()方法获取属性值方法获取属性值除除PageContext外的外的EL隐含对象,都与一个隐含对象,都与一个getXxx()方法等价方法等价1、与范围(Scope)相关的隐含对象与作用范围有关的EL隐含对象有:pageScopere

34、questScopesessionScopeapplicationScope它们的作用和JSP的pageContext、request、session和application的四个隐含对象类似不同的是:这四个隐含对象只能用来获取范围属性,即相当于JSP中的getAttribute(String name)方法却不能获取得其他相关信息例如:在JSP中,request对象除可以获取对应范围的属性值外,还可以取得用户的请求参数或表头信息等等。但在EL中,requestScope对象只能用来取得对应范围的属性值。9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节等价调用等价调用JSP

35、对应隐含对象对应隐含对象 getAttribute()方法方法9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节2、与获取客户端输入有关的隐含对象与获取客户端输入有关的隐含对象有两个:param 等价于调用等价于调用ServletRequest对象对象getParameter()paramValues 等价于等价于ServletRequest对象的对象的getParameterValues()可用param和paramValues取得客户端的数据。$param.name$paramValues.favors与JSP页面下列脚本元素等价:实例:使用隐含对象获取客户端输入数据实例

36、:使用隐含对象获取客户端输入数据:-Param.html-姓名:密码:性别:男 女年龄:10-2020-3030-40兴趣:看书玩游戏旅游听音乐当按下当按下submit钮,将客户端信钮,将客户端信息传送到息传送到Param.jsp做处理做处理。注意:复选框的注意:复选框的habit属性变量,属性变量,可能同时具有多个值。可能同时具有多个值。实例:使用隐含对象获取用户输入实例:使用隐含对象获取用户输入-Param.jsp-EL隐含对象 param、paramValues姓名:密码:性别:年龄:兴趣:添加两个JSTL引用:corefmt从param对象获取从客户端Param.html页面发送的请求

37、参数:username、password、sex和old并做为响应信息输出。从paramValues对象获取从客户端Param.html页面发送的请求参数:habit,并做为响应信息输出。注意:habit是具有多重值的请求参数9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节Param.html运行结果运行结果:9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节Param.jsp运行结果:运行结果:9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节3、cookie 等价于等价于HttpServletRequest对象的对象的getCooki

38、es()所谓的cookie就是一个很小的文本文件它以key/value属性对的方式将会话跟踪的内容存储在这个文本文件内这个文本文件通常存在于客户端浏览器缓冲区内。JSTL并没有提供设置cookie的操作。但在Web服务器的cookie中设置名为userCountry的key/value属性对后,则可以用以下EL表达式来读取其属性值:$cookie.userCountry等价于JSP脚本9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节4、header和headerValues:等价于HttpServletRequest对象的getHeader()方法和getHeaders()

39、客户端和服务器端可通过标题来传递信息。例如:客户端使用User-Agent标题来告诉服务器它的浏览器类型服务器设置Reflush头要求客户隔多长时间进行内容刷新可使用EL属性header访问这些头信息。例如:使用下列EL表达式读取用户浏览器的类型版本$headerUser-Agent它的作用等价于 String browser=request.getHeader(User-Agent);注意注意:标题User-Agent中包含特殊字符-,所以EL表达式中只能使用,而不能写成$(header.User-Agent)。若同一标题头名称可能拥有多个值,则必须改用属性headerValues来读取。9

40、.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节5、initParam 等价于ServletContext对象的getInitParameter()先在web.xml中设定web应用的环境参数(Context),再在JSTL中使用隐含对象initParam去读取这些参数,其作用等价于ServletContext对象的getInitParameter()方法。示例:在web.xml中设定如下:userid scott 则可用$initParam.userid来取得名称为userid的参数,其返回值为scott等价于 String userid=(String)applicati

41、on.getInitParameter(userid);9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节6、pageContext 表示当前JSP的的PageContext对象通过pageContext,可获取JSP的八个隐含对象(参考教材p154表6-4)在EL表达式中,可用pageContext来取得有关用户要求或页面信息:EL表达式表达式说说 明明$pageContext.request.queryString 取得请求的参数字符串$pageContext.request.requestURL 取得请求的URL,但不包括请求参数$pageContext.request

42、.contextPath 取得服务的web application的名称$pageContext.request.method 取得HTTP的方法(GET、POST)$pageContext.request.protocol 取得使用的协议(HTTP/1.1、HTTP/1.0)$pageContext.request.remoteUser 取得用户名称$pageContext.request.remoteAddr 取得用户的IP地址$pageContext.session.new 判断session是否为新的$pageContext.session.id 取得session的ID$pageCo

43、ntext.servletContext.serverInfo 取得主机端的服务信息 附注:附注:pageContext对象实现了javax.servlet.jsp.pageContext类在JSP中,可通过pageContext对象引入其他隐含对象表6-4 javax.servlet.jsp.PageContext类取得其他隐含对象的方法 方法说明Exception getExceptiongetException()获取exception对象JspWriter getOutgetOut()获取out对象Object getPageObject getPage()获取page对象Servle

44、tRequest getRequestgetRequest()获取request对象ServletResponse getResponsegetResponse()获取response对象ServletConfig getServletConfiggetServletConfig()获取servletConfig对象ServletContext getServletContextgetServletContext()获取servletContext对象HttpSession getSessiongetSession()获取session对象9.3.2 EL隐含对象隐含对象EL语语言言简简介介9

45、.39.3节节实例:在实例:在EL中使用中使用pageContext隐含对象隐含对象EL隐含对象 pageContext 运行结果:运行结果:9.3.2 EL隐含对象隐含对象EL语语言言简简介介9.39.3节节9.3.3 EL运算符运算符EL语语言言简简介介9.39.3节节ELEL运算符是构成运算符是构成ELEL表达式的重要成分。表达式的重要成分。从功能角度看,可分为以下几类:从功能角度看,可分为以下几类:1.算术运算符算术运算符2.关系运算符关系运算符3.逻辑运算符逻辑运算符4.Empty运算符运算符5.条件运算符条件运算符6.括号运算符括号运算符9.3.3 EL运算符运算符EL语语言言简简

46、介介9.39.3节节1、EL算术运算符算术运算符算术运算符算术运算符说说 明明示示 例例结果结果+加$17+5 22 减$17 5 12*乘$17*5 85/或或 div 除$17/5 或$17 div 5 3%或或 mod 余数$17%5 或$17 mod 5 2 9.3.3 EL运算符运算符EL语语言言简简介介9.39.3节节2、EL 关系运算符关系运算符关系运算符说 明示 例结 果=或或 eq 等于$5=5 或$5 eq 5 true!=或或 ne 不等于$5!=5 或$5 ne 5 false 或或 lt 小于$3 或或 gt 大于$3 5 或$3 gt 5 false=或或 le 小

47、于等于$3=或或 ge 大于等于$3=5 或$3 ge 5 false 需要注意的是:在使用EL关系运算符时,不能够写成:$param.password1=$param.password2或者$param.password1 =$param.password2 而应写成:$param.password1=param.password2 9.3.3 EL运算符运算符EL语语言言简简介介9.39.3节节3、EL逻辑运算符逻辑运算符 逻辑运算符逻辑运算符说说 明明示示 例例结结 果果&或或 and 与$A&B 或$A and B true/false|或或 or 或$A|B 或$A or B tru

48、e/false !或或 not 非$!A 或$not A true/false 示例:示例:$param.month=7 and param.day=14$param.month=7|param.day=14$not param.choice 9.3.3 EL运算符运算符EL语语言言简简介介9.39.3节节4、Empty运算符运算符 Empty运算符主要用来判断值是否为null或空的。例如:$empty param.userName 如果用户请求参数userName为null,则返回true,否则返回false。9.3.3 EL运算符运算符EL语语言言简简介介9.39.3节节5、条件运算符、条

49、件运算符?:?:EL的条件运算符与Java语言或者C语言的条件运算符相似,例如:$A?B:C即,当A为true时,返回B;否则返回C。9.3.3 EL运算符运算符EL语语言言简简介介9.39.3节节6 6、括号运算符、括号运算符()()括号运算符主要用来改变执行优先级,例如:$A*(B+C)EL运算符的优先级运算规则和Java语言或者C语言的规则相似。9.3.3 EL运算符运算符EL语语言言简简介介9.39.3节节一个一个ELEL运算符的综合示例运算符的综合示例下面将在ELOperator.jsp示例中,将所有运算符实际操作一遍。实例:在实例:在EL中使用运算符中使用运算符-ELOperato

50、r.jsp-14+3 14-3 14*3 14/3 14%3 14=3 14!=3 14 3c:out value=$14 14 3 3/14=3c:out value=$14 14=3=3/true&false true|false$true|false/!false empty username empty password判断是否存在判断是否存在username。此此EL表达式将返回表达式将返回false,表示属性表示属性username非空非空设置一个设置一个request范围的对象,范围的对象,名为名为username,值为,值为scott。判断是否存在判断是否存在password。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁