SpringMVC中的静态资源

时间:2015-12-05 13:24:19

标签: spring-mvc tomcat servlets

我正在使用SpringMVC并尝试使用pure HTML + JS作为视图。我注意到有可能3 possible places可以处理像login.html这样的静态资源。他们是:

  1. 映射到seemingly静态资源URL的控制器处理程序方法。

    @RequestMapping(value = "login.html")
    public String doLogin(Model model) {
        return "login";
    }
    
  2. 指定静态资源类型和位置的addResourceHandlers

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
       registry.addResourceHandler("*.html").addResourceLocations(("/static/"));
    }
    
  3. Tomcat的DefaultServletdefinition,意为serve static resources。并且可以在SpringMVC中启用,如下所示:

    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        // TODO Auto-generated method stub
        configurer.enable();
    }
    
  4. 我的问题是:

    • 像Tomcat这样的servlet容器如何确定资源是静态的?它是基于一些众所周知的文件扩展名吗?
    • 上述3个选项的优先顺序是什么?
    • Spring配置方法addResourceHandler()和Tomcat DefaultServlet之间的关系是什么?我猜是addResourceHandler()告诉DefaultServlet在哪里可以找到某种类型的静态资源。

    一些相关链接:

    21.16.9 Serving of Resources

    SpringMVC ResourceHttpRequestHandler提供的资源。

    21.16.10 Falling Back On the "Default" Servlet To Serve Resources

    servlet容器的DefaultServet通过SpringMVC的DefaultServletHttpRequestHandler

    提供的资源

0 个答案:

没有答案