一、首先,咱们先来认识一下SpringMVC的次要组件

前端控制器(DisatcherServlet):接管申请,响应后果,返回能够是json,String等数据类型,也能够是页面(Model)。

处理器映射器(HandlerMapping):依据URL去查找处理器,个别通过xml配置或者注解进行查找。

处理器(Handler):就是咱们常说的controller控制器啦,由程序员编写。

处理器适配器(HandlerAdapter):能够将处理器包装成适配器,这样就能够反对多种类型的处理器。

视图解析器(ViewResovler):进行视图解析,返回view对象(常见的有JSP,FreeMark等)。

二、SpingMVC的工作原理

上面是文字步骤阐明:

1、用户发送申请到前端控制器(DispatcherServlet)。

2、前端控制器申请处理器映射器(HandlerMapping)去查找处理器(Handler)。

3、找到当前处理器映射器(HandlerMappering)向前端控制器返回执行链(HandlerExecutionChain)。

4、前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)。

5、处理器适配器去执行Handler。

6、处理器执行完给处理器适配器返回ModelAndView。

7、处理器适配器向前端控制器返回ModelAndView。

8、前端控制器申请视图解析器(ViewResolver)去进行视图解析。

9、视图解析器向前端控制器返回View。

10、前端控制器对视图进行渲染。

11、前端控制器向用户响应后果。

三、SpingMVC的应用
须要在web.xml中配置DispatcherServlet。并且须要配置spring监听器ContextLoaderListener

<listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>        <servlet>    <servlet-name>springmvc</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <!-- 如果不设置init-param标签,则必须在/WEB-INF/下创立xxx-servlet.xml文件,其中xxx是servlet-name中配置的名称。  -->    <init-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:spring/springmvc-servlet.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name>springmvc</servlet-name>    <url-pattern>/</url-pattern></servlet-mapping>