1. 什么是mvc - mvc是一种设计模式和设计思想
model , view ,control .
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户.
最重要的一点是多个视图能共享一个模型,正如我所提及的,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。
MVC的缺点:
a. 没有明确的定义,难以理解
b. 需要花费相当多的时间在设计上,去区分模型和控制器
c. 需要管理相当多的文件,所以不适用于规模太小的项目
2. 什么是spring mvc , 优势在哪里 - 它是一个spring组织提出的框架,只需要简单配置就能做到MVC
Spring MVC 属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里。
它可以自由使用不同的view展示层, 比如,你可以用spring自带的web框架,也可以选用struts,jsp,tiles,Velocity等。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
spring 自带的web框架:
Spring 的 Web MVC 框架是围绕 DispatcherServlet
设计的,它把请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上载文件支持。默认的处理程序是非常简单的 Controller
接口,只有一个方法 ModelAndView handleRequest(request, response)
。Spring 提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,那么可以继承 AbstractFormController
。如果需要把多页输入处理到一个表单,那么可以继承 AbstractWizardFormController
。
3. sofa mvc 跟 spring mvc的差别 - 根据公司的现状,把springmvc封装成一整套框架,支持car的概念
sofamvc 结合了公司现有的服务架构,引入了carDisparcher的概念,把springMVC集成到我们自己的系统中去。
相同点:
a. controller方面使用了spring的annotations编程,很方便
b. 沿用了spring定义的很多组件
不同点:
a. 引入了carDisparcher ,在spring的servletDisparcher基础上又多了一层
b. 新增了template 组件,适用于view层的页面展示与逻辑数据分开。比如CSS,JS等,只需要在template声明即可,开发人员不必写到界面,而是交与前段UI开发人员去完成
c. 用jetty作为动态页面服务器,启动速度快。 sofa平台还提供了一个jettyWebStart,方便单元测试。
d. sofa是参照SCA服务规范来设计的,SCA (Service Component Architecture)是为实现 SOA 而产生的一种规范。纯粹面向服务啊。。。
4. 如何使用spring mvc, sofa mvc