网站大量收购闲置独家精品文档,联系QQ:2885784924

MVC模式分析与实现.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对MVC的认识 MVC是一种流行的程序架构,包含三个部分:模型(Model) 、视图(View)、控制器(Control) 。 M模型主要由Entity(数据载体),Dao(修改数据),Biz/Service(复杂业务模型)等组成。Dao和Biz负责将数据加载到Entity中,以及将传递过来的Entity(数据载体)更新到数据库(当然也可能是文件)中 C控制器主要由一些类组成,负责接收和判断用户输入,调用相应的模型,加载和更新数据,将Entity传递到相应的V视图 V视图,可能是特定的窗体或网页,只负责将C传递过来的Entity数据展现给用户 3个部分各施其职,互不干扰,低耦合,任何部分发生改动,都不会影响另外部分 ? MVC模式的优点: (1)同一模型的多个视图。?将模型和用户界面分离。多视图可以在单一的模型中实现 (2)同步化视图。?变更-传播机制确保了所有加入的观察者可以在正确的时间被告知应用程序的数据变化 (3)可插入的视图和控制器。?允许动态/静态地交换模型的视图和控制器对象。 (4)式样和感觉的可交换性。?模型不依赖于具体的用户界面平台,因此系统的可移植性好。 (5)框架潜力。?可以开发这个模式的应用程序框架。 ? MVC模式的缺点: (1)增加了复杂性。?有时获得的灵活性并不大,但是缺增加了复杂性 (2)潜在的过多的更新因素。?有时一个用户动作就导致很多更新。有些更新并不是所有视图都关系 (3)视图和控制器之间的紧密联系。 (4)视图和控制器与模型的紧密耦合。?视图和控制器直接调用模型。模型接口的改变会使得视图和控制器的代码过时 (5)视图中的数据访问的低效率。?数据访问依赖于模型接口。可能过多的访问不必要的数据。 (6)移植时对视图和控制器的修改是不可避免的。?视图和控制器中的软件包含了平台相关的东西。 (7)现代的用户接口工具使用MVC的困难性。 现代的用户接口工具中提供了预制的控制流管理,内部事件的处理等。 ? 自定义WEB-MVC框架的实现 M-javaBean(pojo和dao)负责业务数据模型存取 V—JSP+Html负责生成动态网页  C—Servlet负责生成动态网页 ? 1) 该MVC框架主要由五部分组成: ? 1、ControllerServlet.java:请求分发控制器,解析请求中的动作名字,调用动作工厂对象生成的动作对象处理请求,处理后返回的结果为目的URL,控制器再将请求和应答对象转向目标URL ? 2、ActionFactory.java:该工厂类将请求中的动作名转换成servlet可以用来完成其工作的动作类 ? 3、Action.java:接口类,该接口定义所有动作的公共接口 ? 4、具体Action的实现:指实现了Action接口的类,会被ActionFactory工厂根据请求中的名字创建,从而调用其具体实现的方法处理Reques\Response对象后,返回一个URL,由主控servlet转发给用户。可以理解为一个具体的Action实现类用于处理页面上每一种用户点击(请求) ? 5、系统视图View层实现:*.JSP、*.HTML ?2) 实现源码: ?1控制器Servlet实现 Java代码?? package?wxy.MVCDemo.Servlet;?? ?? import?java.io.IOException;?? import?javax.servlet.ServletException;?? import?javax.servlet.http.HttpServlet;?? import?javax.servlet.http.HttpServletRequest;?? import?javax.servlet.http.HttpServletResponse;?? ?? import?wxy.MVCDemo.action.Action;?? import?wxy.MVCDemo.action.ActionFactory;?? ?? /**? ?*?系统控制器实现? ?*?功能:? ?*?1、解析请求中的命令名? ?*?2、根据请求的命令调用工厂对象创建命令处理对象? ?*?3、调用命令对象处理请求和应答对象,返回目标路径名? ?*?4、本控制器将请求和应答转发至目标路径名? ?*?Servlet?implementation?class?ControllerServlet? ?*/?? public?class?ControllerServlet?extends?HttpServlet?{?? ????private?static?final?long?serialVersionUID?=?1L;?? ?? ????public?ControllerServl

文档评论(0)

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

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

1亿VIP精品文档

相关文档