Upload
yuri-thompson
View
81
Download
6
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
第九章 Servlet技术 (续 )
西南科技大学网络教育系列课程动态网页设计( JSP)
动态网页设计( JSP) http://www.swust.net.cn
Jsp 与 Servlet 的角色划分
Jsp:
页面显示
Servlet:
逻辑处理
动态网页设计( JSP) http://www.swust.net.cn
JSP 设计模式 JSP 设计模式包括两个:
– ( 1 ) Model1 , JSP+JavaBean 设计模式– ( 2 ) Model2 , MVC 设计模式
动态网页设计( JSP) http://www.swust.net.cn
模式一 JSP+JavaBean 模式
在这种模式中, JSP 页面独自响应请求并将处理结果返回客户,所有的数据库操作通过 JavaBean 来实现。
大量地使用这种模式,常会导致在 JSP 页面中嵌入大量的 Java 代码,当需要处理的商业逻辑非常复杂时,这种情况就会变得很糟糕。大量的 Java 代码使得 JSP 页面变得非常臃肿。前端的页面设计人员稍有不慎,就有可能破坏关系到商业逻辑的代码。
这种情况在大型项目中经常出现,造成了代码开发和维护的困难,同时会导致项目管理的困难。因此这种模式只适用于中小规模的项目。
动态网页设计( JSP) http://www.swust.net.cn
模式二 MVC 模式 “MVC” 模式即是:“ Model-View-Controller” 模式。在这种
模式中,通过 JSP 技术来表现页面,通过 Servlet 技术来完成大量的事务处理工作,实现用户的商业逻辑。
在这种模式中, Servlet 用来处理请求的事务,充当了控制器( Controller 即“ C” )的角色, Servlet 负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个 JSP页面发送给客户。 JSP 页面处于表现层,也就是视图( View 即“ V” )的角色。 JavaBean 则负责数据的处理,也就是模型( Model 即“ M” )的角色
动态网页设计( JSP) http://www.swust.net.cn
模式二 MVC 模式 MVC 处理过程 :
首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理
然后模型用业务逻辑来处理用户的请求并返回数据,
最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
动态网页设计( JSP) http://www.swust.net.cn
模式二 MVC 模式 为什么使用 MVC:
数据层代码和表示层代码混在一起 MVC 从根本上强制性的将其分开
多个视图能共享一个模型 模型返回的数据没有进行格式化,所以同样的构件能被不
同界面使用
MVC 的应用程序的三个部件相互对立
可以使用控制器来联接不同的模型和视图去完成用户的需求
动态网页设计( JSP) http://www.swust.net.cn
模式二 MVC 模式
动态网页设计( JSP) http://www.swust.net.cn
MVC 在 JSP 中的实现模型 目前有两种实现模型:
– ( 1 )基于 Bean 的 MVC 模型。– ( 2 )基于 Structs 的 MVC 模型。
动态网页设计( JSP) http://www.swust.net.cn
基于 Bean 的 MVC 模型 Bean 可以利用 JavaBean 实现,也可以利用 EJB 来实现,分
别构成的系统是:– JavaBean ( M ) +JSP ( V ) +Servlet– EJB ( M ) +JSP ( V ) +Servlet ( C )实现。
动态网页设计( 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 )的因素之一。
动态网页设计( JSP) http://www.swust.net.cn
Struts 实现 MVC 框架
Bro
Servlet/JSP容器
Web
服务器
( 视图 )
JSP
( 控制器 )
ActionServlet
Struts-config.xml
Action
Action
Action
( 模型 )
JavaBean
EJB
动态网页设计( JSP) http://www.swust.net.cn
用 Jbuilder 建立简单 Struts 实例• 1. 新建项目
• 2. 新建 Web 应用
• 3. 建立 ActionForm
• 4. 新建 Action
• 5. 新建并配置 forward
• 6.编程
动态网页设计( JSP) http://www.swust.net.cn
用 Jbuilder 建立简单 Struts 实例• 配置资源文件
• 修改 ActionForm里的 validate()方法
• 修改 Action里的 perform()方法
• 建立 index.jsp 和 loginok.jsp 文件
动态网页设计( JSP) http://www.swust.net.cn
自定义 JSP 标记库
在 JSP 规范 1.1版中增加了自定义标记库,允许开发人员在自定义的标记符中封装复杂的功能。定制标记使得 JSP 项目中很容易创建重用的代码模块
动态网页设计( JSP) http://www.swust.net.cn
使用自定义标记库在使用自定义标记库时,主要分为以下 3 个步骤:
– ( 1 )建立一个 TLD ( Tag Library Descriptor )文件,指定标记库中哪一个标记与哪一个处理程序相匹配。这是一种很简单的 XML 文件, TLD 文件描述和说明了属性、信息和标记处理器文件位置等信息。 JSP 容器使用这一文件来映射被调用标记库的位置和用法。
– ( 2 )建立一个对标记的处理程序。处理程序本身也是一个 Java 类。这是标记库的真正核心。 JSP 页面把页面上设置的标记属性都传递给标记处理器, JSP 页面上的标记标示的内容也是这样处理的。当标记处理器完成其处理过程,它就会把处理后的输出结果回送给 JSP 页面做进一步处理。
– ( 3 )在 JSP 页面中使用标记。在 JSP 页面中首先声明标记库,然后再使用它。
动态网页设计( JSP) http://www.swust.net.cn
创建并使用标记库
案例名称: TLD配置文件程序名称:mytld.tld
案例名称:处理自定义标记的 Java类程序名称:MyTagLib.java
案例名称:使用自定义标记库的 JSP页面程序名称: exampletag.jsp