开发者社区> 技术小哥哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MVC模式与struts框架

简介:
+关注继续查看
MVC模式:
MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。

Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现;

View层用于与用户的交互,通常用JSP来实现;

Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

三层架构

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

 

  视图

 

  视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.

 

  MVC好处是它能为应用程序处理很多不同的视图在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 

       模型

 

  模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

       控制器

 

  控制器接受用户的输入调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

设计模式

表现层(Presentation layer)

 

  包含表示代码、用户交互GUI、数据验证。该层用于向客户端用户提供GUI交互,它允许用户在显示系统中输入和编辑数据,同时系统提供数据验证功能

业务逻辑层(Business layer)

 

  包含业务规则处理代码,即程序中与业务相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻辑层主要面向业务应用,为表示层提供业务服务。

数据持久层(Persistence layer)

 

  包含数据处理代码和数据存储代码。数据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。 三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分, 各层与其余层分离,但各层之间存有通信接口。

框架类别

strut

 

在 Struts 中,已经由一个名为 ActionServlet的 Servlet充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的 struts-config.xml 的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。

在 MVC 的 模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动),这两个概念子系统分别具体对应 Struts 里的 ActionForm 与 Action 两个需要继承实现超类。在这里,Struts 可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB),JDBC 与 JNDI

在 Struts 的视图(View) 端,除了使用标准的JavaServer PagesJSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates,XSLT等。通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/09/10/2678496.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring MVC框架:第十七章:异常映射
Spring MVC框架:第十七章:异常映射
0 0
Spring MVC框架:第十六章:细节了解
Spring MVC框架:第十六章:细节了解
0 0
Spring MVC框架:第十五章:多IOC容器整合
Spring MVC框架:第十五章:多IOC容器整合
0 0
Spring MVC框架:第十四章:数据校验
Spring MVC框架:第十四章:数据校验
0 0
Spring MVC框架:第十三章:类型转换
Spring MVC框架:第十三章:类型转换
0 0
Spring MVC框架:第十二章:运行原理
Spring MVC框架:第十二章:运行原理
0 0
Spring MVC框架:第十一章:Ajax
Spring MVC框架:第十一章:Ajax
0 0
Spring MVC框架:第十章:拦截器
Spring MVC框架:第十章:拦截器
0 0
Spring MVC框架:第九章:文件上传
Spring MVC框架:第九章:文件上传
0 0
Spring MVC框架:第八章:表单form:form标签
Spring MVC框架:第八章:表单form:form标签
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题)
立即下载
Spring框架入门
立即下载
杜万-Java reactive programming - Reactor 3 and Spring WebFlux
立即下载