springMVC之dispatcherServlet介绍

一、概述:

DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring
MVC的第一步;【充当调度者的角色,通过它将其他几个流程合理安排分工,使得项目运行下去】;

DispatcherServlet其实就是servlet,也是继承了httpservlet基类,所以想要使前端控制生效,不仅要在controller层添加注解@Controller和@RequestMapping,最后一点就是需要你在web.xml配置文件下声明配置才能生效,

附上SpringMVC处理流程图帮助理解:

在这里插入图片描述

二、DispatcherServlet控制流程:

1.文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;

2.通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);

3.通过handlerAdapter支持多种类型的处理器(handlerExceptionChain中的处理器);

4.通过ViewResolver解析逻辑视图名到具体视图实现;

5.本地化解析;

6.渲染具体的视图等;

7.如果执行过程中遇到异常将交给handlerExceptionResolver来解析;

三、详细配置:

在web.xml配置如下:

 <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <!-- 配置springmvc配置文件的位置 -->
      <param-name>contextConfigLocation</param-name>   <!--配置文件名 -->
      <param-value>classpath:springmvc-servlet.xml</param-value> <!--配置文件名路径 -->
    </init-param>
    <!-- Servlet默认第1次访问创建,配置load-on-startup则会在tomcat启动时提前创建 -->
    <load-on-startup>1</load-on-startup>   <!--启动级别为1 -->
  </servlet>
  <!-- servlet映射声明 -->
  <servlet-mapping>   
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>*.do</url-pattern>  <!-- 监听当前域的所有后缀为.do的请求-->
  </servlet-mapping>

参考1
参考2

Guess you like

Origin blog.csdn.net/qq_43521500/article/details/120815335