MVC设计模式及其改进版在Java Web开发中应用.docVIP

MVC设计模式及其改进版在Java Web开发中应用.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MVC设计模式及其改进版在Java Web开发中应用

MVC设计模式及其改进版在Java Web开发中应用【摘 要】对MVC的定义、功能以及所包含的三部分内容进行阐述,并通过其在Java应用程序中的演化过程予以示例解析,从MVC在Java单机版上的应用即观察者模式,逐步过渡到Java Web开发应用中,并给予详细的示例演示和说明。 【关键词】计算机应用技术; MVC;观察者;设计模式;JSP;Servlet;Java Web;事件驱动机制 1.定义阐述 设计模式:是经过验证的,用于解决特定环境下、重复出现的特定问题的解决方案。经过验证:说明这个设计模式是相对比较优秀的方案,是可行的方案,这样才具有学习、研究和使用价值。 MVC设计模式:是一种架构型设计模式,它本身不引入新的功能,只是指导我们把Web应用结构做的更加合理,实现逻辑与页面相分离。 功能型设计模式:如单例(保证类的实例唯一)、工厂(选择实现)、值对象(封装数据)、DAO(屏蔽变化)等等。 架构型设计模式:结构性的设计模式,只是让程序更具有结构化。 Java中MVC来源思路及进化过程:Servlet=Java+HTML字符串,问题产生了,由于拼字符串太麻烦→解决方案:HTML独立出来从而得到→JSP≈HTML+Java脚本(问题又产生了,能解决Servlet问题,但是带来了页面和逻辑混杂) →解决方案:MVC(指导我们让Web应用程序结构更加合理)。 2.MVC三部分内容及各部分功能如下 ①Model:VO+逻辑层:可以理解为后台部分。 功能:封装应用状态、响应状态查询、暴露应用功能。 ②View:视图层的三大功能,典型的如修改页面,触发事件而不处理,纯jsp自己处理,提交给Controller处理。 功能:产生HTML响应、请求模型更新、提供HTML表单用于用户请求。 对比:纯jsp页面中事件处理与页面展示混杂在一起,MVC中事件处理由Controller承担,从而达到逻辑与页面相分离的效果。 ③Controller:事件处理过程。 功能:验证HTML请求的数据、将用户数据与模型更新相映射、选择用于响应的视图。 3.MVC演化过程及示例 ①没有使用MVC,做纯JSP应用时,结构不太合理,在JSP页面写的代码太多,尤其是控制器代码,页面和逻辑太过于混杂,因此引入一个中间层——控制器来专门处理控制器代码。 ②标准的MVC的组件关系: View用户请求到控制器,控制器状态改变通知Model,Model主动通知View说Model自身已改变,View主动去Model里面去状态查询。 下面先看个标准的MVC单机版的示例: Eclipse本身就是基于MVC做的,例如当我们打开Eclipse时修改编辑区的代码时,左边的Navigator视图和右边的Outline视图等都会自动更新而随着编辑区的代码改变而改变。实际上这些窗口观察的都是同一个Model,即观察XX.java代码文件的内容,这种多个View观察者观察同一个Model文件的在设计模式中也有个设计模式与其对应即观察者设计模式。 观察者设计模式Java代码示例的如下: ⑴根据前面的内容抽象,首先必须有个被观察的对象,即目标对象叫做MySubject.java: public class MySubject extends Observable{ private String content=““; public String getContent() { return content; } public void setContent(String content) { this.content = content; //需要通知所有观察者 this.setChanged(); this.notifyObservers(); } } 观察者观察的为目标对象的内容Content,当内容改变了即有人setContent需要通知所有的观察者。 ⑵其次应该有些观察者,叫做MyObserver: public class MyObserver implements Observer{ private String name; public MyObserver(String name) { this.name=name; } @Override public void update(Observable o, Object msg) { //推模型 System.out.println(name+”推过来的====“+msg); //拉模型 System.out.println(name+”推过来的

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档