一、首先,咱们先来认识一下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>