版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第14章
Web设计模式及案例分析本章首先介绍了一种典型的Web设计模式——模型-视图-控制器(Model-View-Controller,MVC)设计模式的概念和体系结构,然后在此基础上探讨了如何根据MVC设计模式的原理,综合运用Servlet、JSP以及JDBC技术实现一个Web应用的开发。第14章
Web设计模式及案例分析Web应用设计的重要性问题的提出MVC设计模式Web开发案例分析小
结14.1
Web应用设计的重要性1.
性(1)应用程序源代码–
一个应用程序的源代码如果没有注释语句、结构、格式不良是很难
的,高质量的程序源代码要有良好的文档说明以及清楚定义的结构。(2)应用程序结构–
设计一种有意义、各部分划分条理清楚的应用程序,能够大大提高应用程序的可
性。2.重用性面象设计
的目标之一是组件的重复使用。当一个类与其他对象之间的依赖关系比较弱,并提供了专门的一组任务或者具有较高的时,重用性就得到了增强。在具体设计之前选择一个合适的设计模式,并且明确模式中各个组件所处的位置和主要功能,不需要具体设计就可获得一定程度的重用性,这样有助于生成的类在整个应用程序中的重复使用。3.扩充性
的扩充性决定了当
进入实际使用时,可以被扩充和增强到什么程度。良好的设计应该考虑到扩充性。1.用户界面设计的可变性需求在不改变问题模型的前提下,要求扩展系统的应用功能。用户对界面提出新的和特别的要求。把某个系统的设计思想移植到另一个运行环境。不同类型的用户对界面构成的要求不同。2.MVC解决方案设计模式是指在程序设计中对特定问题的惯用解决方案。MVC设计模式的基本原理是把应用程序的数据和商务逻辑、数据的外观呈现、以及对数据的操作划分到不同的实体当中去,这些实体分别称为模型、视图和控制器。14.3
MVC设计模式MVC体系结构对于用户界面设计的可变性需求的状态,MVC设计模式把
交互系统的组成分解成模型、视图、控制器3个组件。1.模
型模型是应用程序使用的对象的完整表示。模型提供了一些操作方法,外界通过这些方法使用模型所实现的对象。模型包含了应用程序的
数据、逻辑关系和计算功能。模型封装了应用程序需要的数据,提供了完成问题处理的操作过程。2.视
图视图将表示模型的数据、数据间的逻辑关系以及状态信息,并以特定形式展示给用户,它从模型中获得显示信息,对相同的信息可以有多个不同的显示形式或视图。每个视图有一个更新操作,当调用更新操作时,视图获得来自模型的数据值,并用它们来更新显示。3.控制器控制器处理用户与应用程序的交互操作,它的职责是控制提供模型中任何变化的,确保用户界面与模型间的对应关系。控制器用来接收用户的输入,并将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的组件。通常一个视图拥有一个控制器,用来接收来自鼠标或键盘的事件,把它们转化为对模型或视图的服务请求,并把任何模型的变化信息反馈给视图。图14.1MVC体系结构视图呈现模型应用程序行为控制器选择的视图用户动作模型应用程序状态查询变化变化通知14.3.2
MVC的动态行为关系控制器在事件处理中接收用户输入事件,解释事件,并激活模型的服务。模型执行所请求的服务,导致其
数据和状态的变化。模型调用通知操作,并通过调用update()方法把数据的变化通知所有在模型中了的视图和控制器。已改变的数据,并更新其在视图中的显示。已改变的数据,并根据设置的值允许或 某些每个 的视图从模型中每个 的控制器从模型中功能。控制器的事件处理过程结束。14.3.3
MVC的CRC卡模
型模型信息把变化通知给视图视
图控制器显示模型控制器模型解释用户输入将变化发送给模型视图模型14.3.4
MVC的优点可以为一个模型在运行时同时建立和使用多个视图。视图与控制器的可插接性,即允许更换视图和控制器对象。模型的可移植性。潜在的框架结构。14.3.4
MVC的缺点增加了系统结构
的复杂性。视图与控制器间的过于紧密的连接。视图对模型数据的低效率
。14.4
结构化Web应用Model
1结构Model
1结构的主要特征是:表现层用HTML或JSP文件。如果需要,JSP文件可以用JavaBean存取数据。JSP文件还负责所有的业务和处理逻辑。数据 要么通过JavaBean实现(在JSP页面中使用JavaBean),要么在JSP页面中用 实现。图14.5Model
1结构概念图客户机浏览器数据库服务器(模型)1:HTTP请求7:HTTP响应Servlet(控制器)JSP页面(视图)JavaBean2:调度请求3:更新模型4:返回路径选择器5:转发或重定向6:
模型14.4.2 Model
2结构模型——模型含有Web应用的 功能,表示Web应用的状态,由JavaBean来充当这个角色。视图——视图负责表示逻辑,它决定数据如何展示给用户。控制器——控制器对用户的输入作出响应,创建模型并提供输入。图14.6Model
2结构概念图客户机浏览器数据库服务器(模型)1:HTTP请求7:HTTP响应Servlet(控制器)JSP页面(视图)JavaBean2:调度请求3:更新模型4:返回路径选择器5:转发或重定向6:
模型14.5
Web开发案例分析本节将根据MVC设计模式的基本原理和方法,在OC4J与OracleDBXE运行环境下,综合运用Servlet、JSP、以及JDBC技术实现一个Web应用开发案例。14.5.1
数据表设计*/*/*/CREATE
TABLE
book("ISBN"
VARCHAR2(16)
NOT
NULL,/*书号"TITLE"
VARCHAR2(40)
NOT
NULL,/*书名"AUTHOR"
VARCHAR2(16)
NOT
NULL,/*作者"PRESSNAME"
VARCHAR2(32)
NOT
NULL,/*/*书号为主键*/*/PRIMARY
KEY("ISBN"))TABLESPACE
"USERS";14.5.1
数据表设计insertintobookvalues('1-302-0101-X/TP','Web应用高级编程','GregBarish','
');insertintobookvalues('3-4032-0306-X/JP','Java应用开发
',' ','电子工业
');insert
into
book
values('5-503-0506-X/XL','Java应用设计',' ','人民邮电
');insert
into
book
values('4-402-5011-T/XT','Oracle9i数据库高级管理','飞思科技','电子工业
');14.5.2
功能概述编辑更新查看删除用户添加<<include>>14.5.3
体系结构客户机浏览器请求处理Servlet(控制器)数据传输对象JSP页面(视图)数据库(模型)HTTP请求、更新模型HTTP响应转发或重定向2.选择数据传输对象RowSet接口提供了如下3个实现:JDBCRowSet——一个基本的JDBC-JavaBean混合。CachedRowSet——允许一个数据集按照意愿与数据库退耦与重新耦合。WebRowSet——用一个简单的XML接口提供JDBC。图14.9工程设置窗口图14.10添加用户类库图14.11添加用户类库14.5.4
显示模块设计ListServlet属于MVC设计模式的控制器部分,主要功能是把来自客户机浏览器的请求转发给JSP页面视图(List.jsp),其具体实现过程如下:当浏览器向ListServlet的一个实例发出请求时,该实例将执行相关的SQL语句,并填充用作一个请求属性的记录行集。请求被转发到List.jsp页面。List.jsp页面将迭代处理记录行集并显示相关数据。图14.12应用程序主页面14.5.5
修改模块设计EditServlet属于MVC设计模式的控制器部分,完成修改一本
的功能。其具体实现过程如下:当用户单击“修改”超文本
时,浏览器将把请求发送到EditServlet的一个实例。EditServlet查找数据源并且获得一个JDBC连接。EditServlet接着执行SQL语句以获得选定
的属性,并且把记录集作为一个请求属性填充。EditServlet接着把这个请求转发到Edit.jsp页面。JSP页面提取数据并且把它作为一个HTML表单显示。14.5.5
修改模块设计UpdateServlet属于MVC设计模式的控制器部分,主要功能属性信息更新到数据库中。其具体实现过是把修改后的程如下:当用户修改属性信息后,单击Update按钮,将把修改后的到UpdateServlet的一个实例。UpdateServlet查找数据源并且获得一个JDBC连接。UpdateServlet接着执行SQL语句以更新选定的 属性信息。UpdateServlet把请求转发到URI,此URI被 到List.jsp页面以显示一个新的 属性信息列表。图14.13应用程序修改信息页面14.5.6
添加模块设计New.html属于MVC设计模式的视图部分,主要功能是显示
信息的列表,并显示一个用于将添加
到CreateServlet进行处理的超文本
。14.5.6
添加模块设计CreateServlet属于MVC设计模式的控制器部分,主要功能是把添加的信息
到数据库中。当用户单击CreateServlet按钮后,其具体实现过程如下:浏览器把请求发送给CreateServlet的一个实例。CreateServlet查找数据源并且获得一个JDBC连接。属性信息,将新的 信息 到数据库中。到List.jsp页面,以显示一个新的 属性执行SQL语句以生成新的把请求转发到URI,此URI被信息列表。图14.16添加新记录后的属性信息页面14.5.7
删除模块设计DeleteServlet属于MVC设计模式的控制器部分,完成删除一本
的功能。其具体实现过程如下:当用户单击“删除”超文本
时,将把请求发送到DeleteServlet的一个实例。DeleteServlet查找数据源并且获得一个JDBC连接。DeleteServlet接着执行SQL语句以删除选定的
。相关请求被转发到特定URI,把这些URI
到List.jsp页面以显示新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论