前置控制器一DispatcherServlet
欢迎光临我的博客[http://poetize.cn],前端使用Vue2,聊天室使用Vue3,后台使用Spring Boot
org.springframework.web.servlet.DispatcherServlet
前言
DispatcherServlet是SpringMVC的核心控制器,就像是SpringMVC的心脏,几乎所有的请求都会经过这个控制器,通过它,大大的降低了模块之间的耦合度。
-
DispatcherServlet主要用作职责调度工作,本身主要用于控制流程:
- DispatcherServlet会查询一个或多个处理器映射(handler mapping)并根据请求所携带的URL信息进行决策,将请求发送给哪个SpringMVC控制器 (controller);
- 控制器做两件事:一是将数据打包,二是定义逻辑视图名,然后返回给DispatcherServlet;
- DispatcherServlet通过视图解析器(view resolver)来将逻辑视图名匹配为一个特定的视图实现,它可能是也可能不是JSP;
-
DispatcherServlet初始化主要做了如下两件事情:
- 初始化SpringMVC使用的Web上下文,并且可能指定父容器为(ContextLoaderListener加载了根上下文);
- 初始化DispatcherServlet使用的策略,如HandlerMapping、HandlerAdapter等。
1.配置DispatcherServlet(web.xml)
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springconfig.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2.路径配置
/*
之类的不能写,访问啥都出错/
的形式全部拦截,访问静态资源会出错
3.*.do
拦截Action请求
3.过滤静态资源(springmvc.xml)
方法1
<mvc:default-servlet-handler/>
方法2
<mvc:resources location="/images/" mapping="/images/**"></mvc:resources>
- location表示静态资源所在的目录,包含WEB-INF目录及其子目录。
- mapping表示对该资源的请求。后面是两个星号*