1、概述
SpringMVC是一个MVC(Model View Controller)的开源框架,其是Spring的一个后续产品,在Spring原有的基础上,又提供了web应用的MVC模块,可以简单的把SpringMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说SpringMVC和Spring无缝集成,其实SpringMVC就是SpringW的一个子模块,所以根本不需要同spring进行整合。具体含义如下:
- Model:模型,用来处理数据,一般是一个实体类,例如User类;
- View:视图,用来显示界面,可以是JSP或Html;
- Controller:控制器,用来决定哪个界面来展示模型(其实是业务处理器)。
2、组件及其作用
-
前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU;
-
处理器映射器(HandlerMapping):根据URL去查找处理器;
-
处理器(Handler):需要程序员去写代码处理逻辑;
-
处理器适配器(HandlerAdapter):把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用);
-
视图解析器(ViewResovler):进行视图解析,将返回的字符串进行处理,可以解析成对应的页面。
3、工作原理
第一步:用户发起请求到前端控制器(DispatcherServlet);
第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle,通过xml配置或者注解进行查找);
第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain);
第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler);
第五步:处理器适配器去执行Handler;
第六步:Handler执行完给处理器适配器返回ModelAndView;
第七步:处理器适配器向前端控制器返回ModelAndView;
第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析;
第九步:视图解析器像前端控制器返回View;
第十步:前端控制器对视图进行渲染;
第十一步:前端控制器向用户响应结果。