在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错,同时也为了组内开发人员之间的配合。总之就是一种分层工作的办法。
(1) 用户通过浏览器向服务器发送请求,请求被springmvc的前端控制器DispatcherServlet拦截;
(2) DispatcherServlet拦截到请求后,会调用HandlerMapping处理映射器;
(3) 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给调用处理器DispatcherServlet;
(4)DispatcherServlet会通过返回信息选择合适的HanderAdapter(处理器适配器);
(5)HanderAdapter会调用并执行Handler(处理器),这里的处理器值的就是程序中编写的Controller类,也被称之为后端控制器;
(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中包含视图名或包含模型和视图名
(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet;
(8)DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)
(9)ViewReslover解析后,会向DispatcherServlet中返回具体的View
(10)DispatcherServlet对view进行渲染(即将模型数据填充至视图中)
(11)视图渲染结果会返回给客户端浏览器显示
(1)DispatcherServlet接口:Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。
(2)HandlerMapping接口:能够完成客户请求到Controller映射。
(3)Controller接口:需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。
从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个>web service(SOAP)与>
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计模式,用业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
而Spring MVC是一个MVC框架。Spring MVC是基于Spring功能之上添加的Web框架,想用Spring MVC必须先依赖Spring。 Spring可以说是一个管理bean的容器,也可以说是包括很多开源项目的总称,spring mvc是其中一个开源项目。
MVC框架除了Spring MVC之外还有其他的框架,如structs2、Zend Framework、NET MVC等。
扩展资料:
MVC框架性能
SpringMVC会稍微比Struts2快。SpringMVC是基于方法的设计,而Sturts2是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而SpringMVC基于方法,粒度更细,但要小心把握像在servlet控制数据一样。
SpringMVC是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在SpringMVC中,一个方法对应一个request上下文。
而Struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;Struts2实际上是通过setter getter方法与request打交道的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)