概述:
Spring MVC是当前最优秀的MVC框架之一,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对Struts 2的超越。现在越来越多的开发团队选择了Spring MVC。
Spring3 MVC的优点:
1、Spring3 MVC使用简单,学习成本低。学习难度小于Struts2。
2、Spring3 MVC很容易就可以写出性能优秀的程序。
3、Spring3 MVC具有很强的的灵活性,Spring框架的扩展性有口皆碑,Spring3 MVC也继承了这一优点,不会因使用了MVC框架而感到有任何的限制。
*****************************************************************************************************************************************************************************
SpringMVC框架是围绕DispatcherServlet这个核心展开,DispatcherServlet这个Servlet负责拦截请求,并将其分派给相应的处理类来处理。
使用Spring MVC,配置DispatcherServlet是第一步。
DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller(我们写的Action)来处理。
体系结构:
SpringMVC是基于Model2实现的技术框架,Model2是经典的MVC模型在Web应用中的变体,这个改变主要源于HTTP协议的无状态性。Model2的目的和MVC一样,也是利用处理器分离模型(Model)、视图(View)和控制(Control),达到不同技术层级间松散层耦合的效果,让系统更有灵活、复用性和可维护性。
****************************************************************************************************************************************************************************
SpringMVC的整体模块架构:
执行过程分析:
1、 由最先的HTPP发送请求,由所配置的XML中的DispatcherServlet处理。
2、 DispatcherServlet接受到这个请求后,根据请求的信息及HandlerMapping的配置找到处理请求的处理器Handler。
3、 得到HandlerMapping对应的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。
4、 处理器完成业务逻辑的处理后返回一个ModelAndView给DispatcherServlet。
5、 ModelAndView包含逻辑视图名,而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。
6、 当得到真实View对象后,DispatcherServlet就对这个View对象进行渲染。
7、 最终返回到客户的HTTP响应。