zoukankan      html  css  js  c++  java
  • Spring MVC中配置静态资源处理的三种方式和区别

    spring mvc中,DispatcherServlet核心servlet配置的url-pattern为"/",这就导致所有的请求都会经过DispatcherServlet,但是当项目访问静态资源时,如.html,.js,.css等文件,这些应该不需要经过核心servlet的,所以为了解决这一问题,在项目中就需要对静态资源处理进行配置。

    通常配置静态资源处理有两种种方式

    配置

    第一种:交由web容器默认的servlet处理

    例如Tomcat的DefaultServlet

    在xml配置文件中:

    <mvc:default-servlet-handler/>

    第二种:由spring mvc自己处理静态资源

    在spring3.0.4版本后,提供了mvc:resources配置

    在xml配置文件中:

    <!-- mapping属性用于映射静态资源的url -->
    <!-- location属性用于指定静态资源的相对路径,这个路径可以指定多个,中间用逗号隔开 -->
    <mvc:resources mapping="/page/**" location="/static/,/aa/"/>

    在配置类中:

    @Configuration
    /**
     * 报扫描,扫描有spring注解的类
     */
    @ComponentScan("edu.nf.ch11")
    /**
     * 启用mvc注解处理器
     */
    @EnableWebMvc
    /**
     * 扩展spring mvc配置,需要实现WebMvcConfigurer接口
     */
    public class SpringConfig implements WebMvcConfigurer {
    
        /*
            配置静态资源处理的两种方式,两种方式任选其一
        */
        
        /**
         * 方式一:使用默认servlet处理静态资源
         */
        @Override
        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
            //启用默认servlet支持
            configurer.enable();
        }
    
        /**
         * 方式二:使用spring mvc处理静态资源
         * @param registry
         */
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/page/**").addResourceLocations("/static/");
        }
    }

    区别

    通俗来说,使用mvc:default-servlet-handler是将请求的静态资源经由spring mvc交回web容器本身默认的servlet去处理,而mvc:resources就是直接由spring mvc处理静态资源。

     

     

  • 相关阅读:
    【BZOJ 2844】: albus就是要第一个出场
    BZOJ 2631: tree
    BZOJ1798: [Ahoi2009]Seq 维护序列seq
    Link-Cut Tree指针模板
    bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)
    【BZOJ 3561】 DZY Loves Math VI
    linux 安装php7.2 以及配置laravel环境(public目录下)
    composer 配置 切换中国镜像
    phpstorm composer 提示php 版本过低的问题调整
    如何在阿里云的虚机 部署laravel项目
  • 原文地址:https://www.cnblogs.com/zhangcaihua/p/12829083.html
Copyright © 2011-2022 走看看