动态网页设计JSP教学课件作者ceacCh08课件

上传人:w****i 文档编号:92615454 上传时间:2019-07-11 格式:PPT 页数:80 大小:395.50KB
返回 下载 相关 举报
动态网页设计JSP教学课件作者ceacCh08课件_第1页
第1页 / 共80页
动态网页设计JSP教学课件作者ceacCh08课件_第2页
第2页 / 共80页
动态网页设计JSP教学课件作者ceacCh08课件_第3页
第3页 / 共80页
动态网页设计JSP教学课件作者ceacCh08课件_第4页
第4页 / 共80页
动态网页设计JSP教学课件作者ceacCh08课件_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《动态网页设计JSP教学课件作者ceacCh08课件》由会员分享,可在线阅读,更多相关《动态网页设计JSP教学课件作者ceacCh08课件(80页珍藏版)》请在金锄头文库上搜索。

1、动态网页设计(JSP),第8章 JSP高级开发技术,课程描述 经过前面的章节,我们已基本掌握了使用JSP开发Web应用程序的方法,本章讲述JSP的高级开发技术,为避免冲淡前面的JSP基础,这里只做简单介绍,不具体展开。,第8章 JSP高级开发技术,知识点及技能点 自定义标签库与标准标签库(JSTL) 表达式语言 MVC模型与Struts框架简介,第8章 JSP高级开发技术,主要内容 8.1 自定义标签库与标准标签库(JSTL) 8.2 表达式语言 8.3 JSTL和表达式语言综合实例 8.4 MVC模型与Struts框架简介,第8章 JSP高级开发技术,通过使用标签库,特别是标准标签库,可以大

2、大降低JSP页面复杂度,并且使代码最大程度地重用。从JSP 2.0起,标准标签库(JSTL)作为标准的支持。JSTL定义了JSP开发中重用程度最大的标签。下面将有选择的介绍有关标签库地开发。,8.1 自定义标签库与标准标签库(JSTL),8.1.1 标签语言与自定义标签,标签扩展是一个Java类,它是运行一个或者两个接口的JavaBean。在JSP规范里,标签具有比JavaBean更丰富的运行时协议,具体原因如下: 初始化可以包含属性,如果没有这些属性,标签就不能运行,而JavaBean的构造函数参数为空。 设置和获取属性不会涉及到所有的基类,在Bean中只有很少量的逻辑控制。 JSP页面中的

3、Bean没有设置默认上下文,也就是说,Bean没有一个父类的或者页面上下文对象的默认概念。,8.1 自定义标签库与标准标签库(JSTL),8.1.1 标签语言与自定义标签,JSP所有的标签都实现了javax.servlet.jsp.tagext.JspTag接口,这个接口是一个标记接口,它有两个直接子接口: 一个是simpleTag,它是JSP 2.0新增加的接口,代表简单的标签。 一个是Tag接口,它是经典的、必须实现的接口,它有一个直接子接口就是IterationTag。,8.1 自定义标签库与标准标签库(JSTL),8.1.1 标签语言与自定义标签,由于JSP 2.0中新定义的标签在实现

4、原理上和JSP 1.2中的标签有很大的区别。在这里,我们称JSP 1.2规范中的标签为传统标签,JSP 2.0新定义的一种类型的标签为简单标签(simpleTag)。需要注意的是,JSP 2.0中既有传统的标签,也有简单标签。,8.1 自定义标签库与标准标签库(JSTL),8.1.1 标签语言与自定义标签,IterationTag用于开发迭代的标签,它有一个简单的实现类为TagSupport,在开发时,只要从TagSupport扩展就可以开发出迭代标签了。 IterationTag还有一个子接口,就是BodyTag,这种标签允许带有Body,BodyTag也有一个实现类,就是BodyTagSu

5、pport,在开发BodyTag时往往直接从它继承就可以了。,8.1 自定义标签库与标准标签库(JSTL),自定义标签,自定义标签由标记处理程序和标签的描述组成。当遇到特定标记时,标记处理程序就会告诉系统应该做什么。类中包含了请求期问将要执行的Java代码。标签的描述声明了怎么使用这个标签。标记可以带有属性和主体,这些属性和主体是可选的,最简单的标记可以没有属性和主体。,8.1 自定义标签库与标准标签库(JSTL),8.1.1 标签语言与自定义标签,自定义标签,以下是几种典型的标签。 不带属性和主体的简单标签: 。 不带主体但有属性的标签: 。 带有主体和属性的标签: 这里是标签体,可以是任何

6、合法的JSP内容或者标签。 SimpleTag:这是JSP 2.0新增加的一种类型的标签。 另外,一个标签可以嵌套在另一个标签里面,这就使得标签可以有很强的页面内容管理能力。,8.1 自定义标签库与标准标签库(JSTL),8.1.1 标签语言与自定义标签,8.1.2 JSTL简介,从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了。自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。 JSTL的优点: 1、 在应用程序服务器之间提供了一致的接口,最大程序地提高了Web应用在各应用服务器

7、之间的移植。 2、 简化了JSP和WEB应用程序的开发。 3、 以一种统一的方式减少了JSP中的Scriptlet代码数量,可以达到没有任何scriptlet代码的程序。在我们公司的项目中不允许有任何scriptlet代码出现在JSP中。 4、 允许JSP设计工具与Web应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE开发工具出现。,8.1 自定义标签库与标准标签库(JSTL),8.1.2 JSTL简介,JSTL目前的最新版本为1.2,最终发布版为1.0。JSTL包含两个部分:标签库和EL(Expression Language,表达式语言)。标签库目前支持四种标签: Core支持

8、JSP中的一些基本的操作; XML processing支持XML文档的处理; I18N capable formatting支持对JSP页面的国际化(尤其是数字和日期); Database access (SQL)支持JSP对数据库的操作。,8.1 自定义标签库与标准标签库(JSTL),8.1.3 一般用途的标签,1.标签用于在JSP中显示数据 例如: 您的用户名是: 显示用户的用户名,如为空则显示guest。 指定从session中获取username的值并显示。 显示username的值. 默认是从request(page)中获取。如果request中没有名为username的对象则从s

9、ession中获取,如果session中没有则从application(servletContext)中获取,如果没有取到任何值则不显示 。,8.1 自定义标签库与标准标签库(JSTL),8.1.3 一般用途的标签,2.标签用于保存数据 如果指定了target属性, 那么property属性也必须指定。 例子: 将test.testinfo的值保存到session的test2中,其中test是JavaBean的一个实例,testinfo是test对象的属性。 将对象cust.address的city属性值保存到变量city中 3.标签用于删除数据 例如: 从session中删除test2变量。

10、,8.1 自定义标签库与标准标签库(JSTL),8.1.4 条件标签,1. 这个标签不接受任何属性 这个标签同样不接受任何属性 例如: user.wealthy is true. 2. 如果user.wealthy值true,则显示user.wealthy is true. user.generous is true. ,8.1 自定义标签库与标准标签库(JSTL),8.1.4 条件标签, user.stingy is true. 3. 4. user.generous and user.stingy are false. 只有当条件user.generous返回值是true时,才显示user

11、.generous is true. 只有当条件user.stingy返回值是true时,才显示user.stingy is true. 其他所有的情况(即user.generous和user.stingy的值都不为true)全部显示user.generous and user.stingy are false. 由于JSTL没有形如if () else 的条件语句,所以这种形式的语句只能用、和标签共同来完成了。,8.1 自定义标签库与标准标签库(JSTL),8.1.5 迭代标签,标签用于通用数据 例如: 相当于Java语句 for (int i=0;i count= 输出: count=0

12、. count=100,8.1 自定义标签库与标准标签库(JSTL),8.1.5 迭代标签, 例如: 这个标签的使用相当于java.util.StringTokenizer类。在这里将字符串a:b:c:d以“:”分开循环4次,token是循环当前分割到的字符串。,8.1 自定义标签库与标准标签库(JSTL),8.1.6 URL标签,JSTL核心标签库支持使用来包含文件,使用来输出和格式化URL,使用来重定向URL。 标签包含另外一个页面代码到当前页 标签输出一个URL地址,8.1 自定义标签库与标准标签库(JSTL),8.1.6 URL标签,例如: 将url http:/ “/ 在当前页的当前

13、位置输出 ,http:/是当前页的所在的位置。 比强大得多,但是,也有其它理由去使用的。在JSTL中,对于引入的资源使用了缓存,但有时候缓存会是没用的。如果你使用,资源的内容会被读入并写到当前的JspWriter,而且是每访问一次就重读一次。而使用,资源的内容则只会读取一次。,8.1 自定义标签库与标准标签库(JSTL),8.1.6 URL标签,3. 标签将请求重新定向到另外一个页面 例如: 将请求重新定向到http:/ 4. 标签用来传递参数给一个重定向或包含页面 例如: 将参数888以“id”为名字传递到login.jsp页面,相当于login.jsp?id=888,8.1 自定义标签库与

14、标准标签库(JSTL),8.1.7 XML标签,XML操作也可细分成核心操作,流程控制操作和转换操作。JSTL中的XML操作是基于Xpath的,Xpath是XML操作专用的表达式语言。JSTL所有的XML操作中,用select属性去指定XPath表达式,这些信息将由XPath引擎解释。 XML核心操作与JSTL的核心操作相似,它包含、和标记。标记提供将XML文档转换成结构化数据的功能,之后,这些数据就能被XPath引擎解释了。 例如,有一个关于书籍的XML文档,我们就可以解释它并打印出来: ,8.1 自定义标签库与标准标签库(JSTL),8.1.8 国际化输出标签,JSTL的另一项重要功能就是

15、本地化操作,通过当前请求的,或者环境配置中的参数,就可以简便地实现本地化操作。这个操作是使用J2SE中的ResourceBundle机制去存放各种译文。JSTL通过设定的区域,去找到并使用相应的ResourceBundle。 用去设置区域,如,value属性为语言代码和国家代码。 也可以直接指定一个ResourceBundle: 。 一旦设置了区域或者绑定特定的信息,那么标记就会自动地选择正确的ResourceBundle,使用以下形式就可以输出正确的信息: ,8.1 自定义标签库与标准标签库(JSTL),8.1.8 国际化输出标签,你也可以直接使用标记去设置当前请求的字符集。 获取和显示文字

16、信息只是本地化操作的一部分内容,而另一 部分就是格式化同解释日期和数字,不同的地域会有不同的日期和数字格式。使用和去格式化数字、金额,百分比数,而且还可以指定格式,就如 会输出“12.30“。 日期和时间的处理使用、和。,8.1 自定义标签库与标准标签库(JSTL),8.1.9 SQL标签,下面我们来看一下SQL操作。 SQL标记可以用来设置数据源,执行查询,访问查询结果,执行更新等。所有的SQL操作都是基于某一数据源的。 有几种方式可以设置数据源:在配置文件里设置sql.datasource参数,在程序中直接设置,或者使用标记。 如下面就设置了一个MySQL的数据源: ,8.1 自定义标签库与标准标签库(JSTL),8.1.9 SQL标

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

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号