前端控制器DispatcherServlet
<!--定义spring mvc 的前端控制器Servlet -->
<servlet>
<!--Servlet的名称-->
<servlet-name>SpringMVC</servlet-name>
<!--Servlet对应的java类-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--当前Servlet的参数信息-->
<init-param>
<!--contextConfigLocation是参数名称,该参数的值包含SpringMVC的配置文件路径-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!--在web应用启动时立即加载Servlet-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--让pringMVC的前端控制器拦截所有的请求url(不包括jsp-->
<!--Servlet映射声明-->
<!--/表示拦截所有servlet请求-->
<!--/*表示拦截所有servlet请求,jsp文件-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
1)DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。
2)调用相应处理器中的处理方法,处理该请求,处理器处理结束后会将一个ModelAndView类型的数据传给DispatcherServlet,这其中包含了处理结果的视图和视图中要使用的数据。
3)DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应
1.DisPatcherServlet 前端控制器
核心。用户在浏览器输入url,发起请求,首先会到达DisPatcherServlet,由它来调用其他组件来配合工作的完成,DisPatcherServlet的存在大大降低了组件之间的耦合性
2.HandlerMapping 处理器映射器
记录url与处理器的映射,方式有注解、XML配置等
3.HandLer 处理器
后端控制器(通俗一点:Controller层所写的业务代码)。对用户的请求进行处理
4.HandlerAdapter 处理器适配器
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。(我也不太明白)
5.ViewResolver 视图解析器
ViewResolver负责解析view视图,并进行渲染(数据填充),将处理结果通过页面展示给用户看
6.View 视图
View是一个接口,实现类支持不同的View类型(jsp、freemarker、velocity)