技术栈

七、(一)DispatcherServlet

2019-07-24  本文已影响0人  烟雨乱平生

Spring MVC的核心是DispatcherServlet,这个Servlet充当Spring MVC的前端控制器。与其他Servlet一样,DispatcherServlet必须在web应用程序的web.xml中进行配置。

  <servlet>
    <servlet-name>pray</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

为这个Servlet所设置的<servlet-name>是很重要的。默认情况下,DispatcherServlet在加载时会从一个基于这个Servlet名字的XML文件(位于应用程序的WEB-INF目录下)中加载Spring应用上下文。

接下来我们必须声明DispatcherServlet处理哪些URL。比较常见的匹配模式是*.html/*或者/app。但是这些模式都存在一些问题:

四种匹配模式

1. 匹配精确路径
以“/”开头,以字母(非”*”)结束

2. 匹配扩展名
以* 开头,以扩展名结束

3. 匹配最长路径
以“/”开头,并以 /* 结尾

4. 匹配默认
“/” 用来表示对应的servlet 为默认的servelet

匹配模式//*含义是不一样的。

  • /*属于路径匹配,并且可以匹配所有请求,由于路径匹配的优先级仅次于精确匹配,所以/*会覆盖所有的扩展名匹配,故不推荐使用。
  • /是servlet中特殊的匹配模式,优先 级最低,不会覆盖其他任何匹配模式,只是会替换servlet容器的内建default servlet ,该模式同样会匹配所有请求。

推荐使用一下匹配规则:

  <servlet-mapping>
    <servlet-name>pray</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

该匹配规则会匹配所有的请求,为了解决对静态资源的请求,Spring提供了<mvc:resources>元素,他会处理静态资源的请求。所要做的就是在Spring配置文件中对其进行配置。

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
       ">

    <mvc:resources mapping="/resources/**" location="/resources/"></mvc:resources>
</beans>
上一篇 下一篇

猜你喜欢

热点阅读