1.DispatcherServlet:

它继承了HttpServlet这个抽象类。前端控制器是Spring MVC的集中访问点,主要职责是调度、流程控制。为了给整个Web项目配置一个前端控制器,需要在web.xml文件中进行如下配置。

   <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--初始化时 加载sringmvx.xml -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--启动服务器时,创建Servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--放行静态资源-->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

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

  如何你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题。
  如果你的DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,那么同时对*.js,*.jpg等静态文件的访问也就被拦截了。

 

  如果你配置的是

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

 

  静态资源将不能被访问到

    若要访问静态资源要配置default

   <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

 

2.在spring3.0.4以后版本提供了mvc:resources ,  可以在springmvc.xml中使用方法:

<!--放行静态资源-->
    <mvc:resources mapping="/css/**" location="/css/"></mvc:resources>
    <mvc:resources mapping="/img/**" location="/img/"></mvc:resources>
    <mvc:resources mapping="/js/**" location="/js/"></mvc:resources>

    <!--开启springmvc对注解的支持-->
    <mvc:annotation-driven></mvc:annotation-driven>

 

posted on 2019-09-28 11:22  忆夏KhaZix  阅读(149)  评论(0编辑  收藏  举报