




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第27卷第10期 甘肃科技 VoL 27No.10 2011年5月 Gansu Science and Technology May.2011MVC设计模式及其改进版在Java Web开发中的应用郑福传(兰州交通大学,甘肃兰州730070摘要:对MVC的定义、功能以及所包含的三部分内容进行了阐述,并通过其在Java应用程序中的演化过程予以示 例解析,从MVC在Java单机版上的应用,即观察者模式,逐步过渡到Java Web开发应用中,并给予详细的示例演示 和说明。关键词:计算机应用技术;MVC;观察者;设计模式;JSP;¥ervlet;Java Web;事件驱动机制中图分类号:m11l 定义阐
2、述设计模式:是经过验证的,用于解决特定环境 下、重复出现的特定问题的解决方案。经过验证:说 明这个设计模式是相对比较优秀的方案,是可行的 方案,这样才具有学习、研究和使用价值。MVC设计模式:是一种架构型设计模式,它本 身不引入新的功能,只是指导我们把Web应用结构 做的更加合理,实现逻辑与页面相分离。功能型设计模式:如单例(保证类的实例唯 一、工厂(选择实现、值对象(封装数据、DAO(屏 蔽变化等等。架构型设计模式:结构性的设计模式,只是让程 序更具有结构化。Java中MVC来源思路及进化过程:Servia= Java+HTML字符串,问题产生拼字符串太麻烦一+解决方案:HTML独立出来从而
3、得到_+JSP*HTML +Java脚本(能解决Servia问题,但是带来了页面 和逻辑混杂-+解决方案:MVC(指导我们让Web 应用程序结构更加合理。2MVC三部分内容及各部分功能 (1Model:VO+逻辑层:可以理解为后台部分。 功能:封装应用状态、响应状态查询、暴露应用 功能。(2View:视图层的三大功能,典型的如修改页 面,触发事件而不处理,纯jsp自己处理,提交给 Controller处理。功能:产生HTML响应、请求模型更新、提供 肿ML表单用于用户请求。对比:纯jsp页面中事件处理与页面展示混杂 在一起,MVC中事件处理由Controller承担,从而达 到逻辑与页面相分离
4、的效果。(3Controller:事件处理过程。功能:验证HTML请求的数据、将用户数据与 模型更新相映射、选择用于响应的视图。3MVC演化过程及示例I Vie靴.JSP页哳F_Modcl vo馊辑瑶l l rrI图1系统结构这种结构不太合理,在JsP页面写的代码太多, 尤其是控制器代码,页面和逻辑太过于混杂,因此引 入一个中间层控制器来专门处理控制器代码。 3.2标准的MVC的组件关系如图2所示图2标准的MVC的组件关系View用户请求到控制器,控制器状态改变通知 Model,Model主动通知View说Model自身已改变, View主动去Model里面去状态查询。下面先看个标准的MVC单
5、机版的示例:Eclipse本身就是基于MVC做的,打开Eclipse 时修改编辑区的代码时,左边的Navigator视图和右 边的Outline视图等都会自动更新而随着编辑区的 代码改变而改变。实际上这些窗口观察的都是同一甘肃科技第27卷个Model,即观察xx Java代码文件的内容,这种害个View观察者观察同一个Model文件的在设计模 式中也有个设计模式与其对应即观察者设计模式。观察者设计模式Java代码示例如下:田3目标对毫观察者观察的为目标对象的内容Content.当内容改变了即有setContent需要通知所有的观察 者。(2其次应该有些观察者,叫做MyObse竹er,如图4所示
6、。目4观曩者MyObwer实现一个uPdme回调方法.即MyOb螂'er去观察MySobj钟t,观察到后采取的处理即这个update方法。这里的观察者又有两种模型, 一种是被观察者主动推过来的消息即推模塑。另一 种就是观察者主动去拉内容即拉模型。其实观察者 模式也叫出版订阅模式.推模型即订报的意思,郎报 刊发行商将报纸送上门服务,拉模型即某个时刻大 家主动去报刊亭买报的这种模型。(3客户端测试代码。CllenL j叫a.如图5所示。基西蔓j匣茧蕾j三卫王王要工五譬翟 , 二“煅=二.=; |:湛二-:=. ;l.一fJ,l:=:=:=:rl ,一 :=嚣:慧=:=:12=”瞳5客户螭舅
7、试代珥首先创建一十目标对象,然后创建三个观察者然后注册观察者相当于订报纸.然后报社出报纸郎 内容改变时触发观察者,当被观察的对象改变时需要通知观察者也日口对应MySubj盹t巾v8的11、12行代码。代码输出结果,如图6所示。田6代日输出塘果当将ClienL】a性文件中的第8、12行注释掉时, 输出结果中同2行随之也不显示出来,即所谓的lis 退订。33改进版MVC在Java WEB开发中会产生一个问题:就是为什么Model会主动通知View自身已经改变了昵? 因为JB伯中标准的MVC起源于Swing,这种标准的MVC只能适应于单机版.在WEB开发中无法实现。因为WEB是基于请求应答模式的环境
8、.Model不台在没有请求的情况下直接通知View自身的改变。改进版MVC组件关系如阳7所示。7畦进版MVC目悻美K在实际开发WEB应用的时候,由于无法按照标准的MVC去实现,通常我们会把逻辑部分转移到逻辑层去实现,所以Moclel就退变成只用来封装散据,也就是我们常写的VO;此时View一般不直接和逻辑层交互.所有跟逻辑层的交互都由控制器来宴 现.View只和控制器交互,如图7所示。改进版后的MVC一般实现方式:View用JSP来实现.Controller由Sewlet来实现,Model由JayaB来实现。擞开现在流行的SSH三大框架,下面是一个MVC的修改功能前台的实现(后台省略.此MVC
9、 为JSTL+Model2的实现方式。参考文献:【1h印:/w”L J_啦yB emm/wikl/tope/8129142】 h 呻 :/I i n u x 521叫 伽伽矿砷撑 6, “55html3】bllp:/teeh.鼬,t惴一一03Ao啪,¨2佩dtml4】hnp:/*ddzee.javaeycom/Mof/5721帕(下转幂29页第10期 柴成博等:cqslal Reports在LIMS中的应用29田2节选项示倒按照原报表格式和要求,开发完成水晶报表模 版.刷新散据,即可显示新的报裹样式,满足开发要 求,开发完成的报表如图3所示。旦。. Kii1=i*i兰芝=.苣j=三磊
10、耋橐h d r j ,? r 。=【娑二一=P#要:一-日【一I_,!?田3水报寰示倒3uMs中水晶报表的生成为了能够更好、更快捷的生成报表、导出报表.我们将利用uMs个性化开发工具,实现”一键生成报表。的功能。31设计报寰生成菜单在LIMS系统中,设计报表生成菜单,实现一键生成按钮。在LIMS中sub咖tinee表中的ASFOLDER中缩写菜单程序.并定义其菜单显示的位 置和蛙接的报表生虚程序。在开发完成菜单显示程序后,可以在样品文件夹中看到定义的菜单名称。32开发报寰生成酣由于各企业报表的形式多样、样品类型不同、生 产厂不同、化验标准不同、审核人不同等等原因.使 各企业的报表模版杂.为了能
11、够更快、更准确的生成所需的报表,在u岫中开发报表自动生成程枣.以便能够识别报表模块,并与报表生成菜单相关联。在LIMS中叭bmu6n表中建立于程序NEW-COA(名嚣可以修改,点击组态进程序开发界 面,根据不同需求,并指定各类别样品报表生成所需的报表横版开发完成报表自动生成程序。4总结c唧t日l Reporh在中国石油L删s实施建设中的 应用.优化了报表生成流程,减少报丧生成时阃,同 时减少了报表生成出错率.提高丁质控人员的工作 教率。为生产部门及时准确的提供了产品的分析信 息,为公司产品出厂及客户提供保障。考文献:1郜立棒,赵丽LabW眦LIMS的缠态实施J现代科学但嚣,2004(5;141
12、72冯金辉靛字实验室一删s未束发晨趋势耵瑰代科学仪器,2002(2:63】杨悔鹰。沈彤.陆蟪咎从LIMS割u叫sd埘J现代科学仪嚣,2002(2:4J】理化检验,2004.40(1:495尚凡一.王兆文实验童信息蕾理系统(z珊s的设计及实现J中国环境监测.2000(4:25实验童f理工作中的应用【J实验与检验掌,29(4.2021f7张志攘.王群.弗芹化工实验窒信息f理幕筑【m龇M化工出版社8弱立。酩实验室信息f理幕统(【皿s在环境监疆幕坑的应用撵讨【J】扛苏环境科技.27(4:38(上接第24百【5】R蜘L如Jm敷据蝽两与算法M计晓i赵研辱译北京:中国电力出版杜.2003【6B蚰.J讪龃EHed"hn胁衄d%h*m钿kddi帆一乳。蛔。B啪,0lIsBN:0201310058【7HL4OI印6幽山mWoddWide Webc州b时ub口1999.c h仲:/yw胤w3.otg/TR/1999/REChml40l一19991224/BJmnmh口,sm山d蹦d帆6棚Spe删mSunMh"Mm2006(呻:/j,讳uH6,W堪,'【超i伟,肖敏,腌前辩一种简单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水电结算协议书
- 房地产代理商合同
- 室内装修工程劳务承包协议书
- 转让店铺及招牌合同协议
- 配偶出轨协议书范本
- 运营合作协议合同书
- 车辆合作经营合同协议
- 无赏修路协议书
- 个人抵押车借款合同
- 超市退换货合同协议
- GA 1801.2-2022国家战略储备库反恐怖防范要求第2部分:通用仓库
- 2022 CSCO肝癌诊疗指南
- GB/T 4744-1997纺织织物抗渗水性测定静水压试验
- GB/T 17911-2006耐火材料陶瓷纤维制品试验方法
- 自治区促进就业创业政策课件
- 陶瓷制作工艺知识课件
- 重组人生长激素在儿科临床的应用课件
- 某步进式加热炉施工组织设计
- 产品近三年主要销售业绩清单
- 教师公开招聘考试结构化面试试题
- 操作规程编制导则
评论
0/150
提交评论