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处理静态资源。

     

     

  • 相关阅读:
    372. Super Pow
    桌面远程连接:发生身份验证错误,要求的函数不受支持
    Web Service代理类生成工具
    Razor语法大全
    Web Serveice服务代理类生成及编译
    配置WCF Test Client
    我与春风皆过客,你携秋水揽星河
    机器学习(十三) 集成学习和随机森林(下)
    机器学习(十三) 集成学习和随机森林(上)
    机器学习(十二) 决策树(下)
  • 原文地址:https://www.cnblogs.com/zhangcaihua/p/12829083.html
Copyright © 2011-2022 走看看