17
第第第 Servlet 第第 (第) 南南南南南南南南南南南南南 西 南南南南南南JSP

第九章 Servlet 技术 ( 续 )

Embed Size (px)

DESCRIPTION

西南科技大学网络教育系列课程 动态网页设计( JSP ). 第九章 Servlet 技术 ( 续 ). Jsp 与 Servlet 的角色划分. Jsp: 页面显示. Servlet: 逻辑处理. JSP 设计模式. JSP 设计模式包括两个: ( 1 ) Model1 , JSP+JavaBean 设计模式 ( 2 ) Model2 , MVC 设计模式. 模式一 JSP+JavaBean 模式. 在这种模式中, JSP 页面独自响应请求并将处理结果返回客户,所有的数据库操作通过 JavaBean 来实现。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第九章  Servlet 技术 ( 续 )

第九章 Servlet技术 (续 )

西南科技大学网络教育系列课程动态网页设计( JSP)

Page 2: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

Jsp 与 Servlet 的角色划分

Jsp:

页面显示

Servlet:

逻辑处理

Page 3: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

JSP 设计模式 JSP 设计模式包括两个:

– ( 1 ) Model1 , JSP+JavaBean 设计模式– ( 2 ) Model2 , MVC 设计模式

Page 4: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

模式一 JSP+JavaBean 模式

在这种模式中, JSP 页面独自响应请求并将处理结果返回客户,所有的数据库操作通过 JavaBean 来实现。

大量地使用这种模式,常会导致在 JSP 页面中嵌入大量的 Java 代码,当需要处理的商业逻辑非常复杂时,这种情况就会变得很糟糕。大量的 Java 代码使得 JSP 页面变得非常臃肿。前端的页面设计人员稍有不慎,就有可能破坏关系到商业逻辑的代码。

这种情况在大型项目中经常出现,造成了代码开发和维护的困难,同时会导致项目管理的困难。因此这种模式只适用于中小规模的项目。

Page 5: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

模式二 MVC 模式 “MVC” 模式即是:“ Model-View-Controller” 模式。在这种

模式中,通过 JSP 技术来表现页面,通过 Servlet 技术来完成大量的事务处理工作,实现用户的商业逻辑。

在这种模式中, Servlet 用来处理请求的事务,充当了控制器( Controller 即“ C” )的角色, Servlet 负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个 JSP页面发送给客户。 JSP 页面处于表现层,也就是视图( View 即“ V” )的角色。 JavaBean 则负责数据的处理,也就是模型( Model 即“ M” )的角色

Page 6: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

模式二 MVC 模式 MVC 处理过程 :

首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理

然后模型用业务逻辑来处理用户的请求并返回数据,

最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

Page 7: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

模式二 MVC 模式 为什么使用 MVC:

数据层代码和表示层代码混在一起 MVC 从根本上强制性的将其分开

多个视图能共享一个模型 模型返回的数据没有进行格式化,所以同样的构件能被不

同界面使用

MVC 的应用程序的三个部件相互对立

可以使用控制器来联接不同的模型和视图去完成用户的需求

Page 8: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

模式二 MVC 模式

Page 9: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

MVC 在 JSP 中的实现模型 目前有两种实现模型:

– ( 1 )基于 Bean 的 MVC 模型。– ( 2 )基于 Structs 的 MVC 模型。

Page 10: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

基于 Bean 的 MVC 模型 Bean 可以利用 JavaBean 实现,也可以利用 EJB 来实现,分

别构成的系统是:– JavaBean ( M ) +JSP ( V ) +Servlet– EJB ( M ) +JSP ( V ) +Servlet ( C )实现。

Page 11: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

Struts 概述 Client browser (客户浏览器)

来自客户浏览器的每个 HTTP 请求创建一个事件。 Web 容器将用一个 HTTP 响应作出响应。

Controller (控制器) 控制器接收来自浏览器的请求,并决定将这个请求发往何处。就 Struts 而言,控制器是以 servlet 实现的一个命令设计模式。 struts-config.xml 文件配置控制器。

业务逻辑 业务逻辑更新模型的状态,并帮助控制应用程序的流程。就 Struts 而言,这是通过作为实际业务逻辑“瘦”包装的 Action 类完成的。

Model (模型)的状态 模型表示应用程序的状态。业务对象更新应用程序的状态。 ActionForm bean 在会话级或请求级表示模型的状态,而不是在持久级。 JSP 文件使用 JSP 标记读取来自 ActionForm bean 的信息。

View (视图) 视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息 -- 只有标记。标记是使 Struts 有别于其他框架(如 Velocity )的因素之一。

Page 12: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

Struts 实现 MVC 框架

Bro

Servlet/JSP容器

Web

服务器

( 视图 )

JSP

( 控制器 )

ActionServlet

Struts-config.xml

Action

Action

Action

( 模型 )

JavaBean

EJB

Page 13: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

用 Jbuilder 建立简单 Struts 实例• 1. 新建项目

• 2. 新建 Web 应用

• 3. 建立 ActionForm

• 4. 新建 Action

• 5. 新建并配置 forward

• 6.编程

Page 14: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

用 Jbuilder 建立简单 Struts 实例• 配置资源文件

• 修改 ActionForm里的 validate()方法

• 修改 Action里的 perform()方法

• 建立 index.jsp 和 loginok.jsp 文件

Page 15: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

自定义 JSP 标记库

在 JSP 规范 1.1版中增加了自定义标记库,允许开发人员在自定义的标记符中封装复杂的功能。定制标记使得 JSP 项目中很容易创建重用的代码模块

Page 16: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

使用自定义标记库在使用自定义标记库时,主要分为以下 3 个步骤:

– ( 1 )建立一个 TLD ( Tag Library Descriptor )文件,指定标记库中哪一个标记与哪一个处理程序相匹配。这是一种很简单的 XML 文件, TLD 文件描述和说明了属性、信息和标记处理器文件位置等信息。 JSP 容器使用这一文件来映射被调用标记库的位置和用法。

– ( 2 )建立一个对标记的处理程序。处理程序本身也是一个 Java 类。这是标记库的真正核心。 JSP 页面把页面上设置的标记属性都传递给标记处理器, JSP 页面上的标记标示的内容也是这样处理的。当标记处理器完成其处理过程,它就会把处理后的输出结果回送给 JSP 页面做进一步处理。

– ( 3 )在 JSP 页面中使用标记。在 JSP 页面中首先声明标记库,然后再使用它。

Page 17: 第九章  Servlet 技术 ( 续 )

动态网页设计( JSP) http://www.swust.net.cn

创建并使用标记库

案例名称: TLD配置文件程序名称:mytld.tld

案例名称:处理自定义标记的 Java类程序名称:MyTagLib.java

案例名称:使用自定义标记库的 JSP页面程序名称: exampletag.jsp