6.Spring MVC静态资源访问

2021-07-01 02:05

阅读:394

标签:size   常用   ini   div   java   web应用   根目录   param   att   

在SpringMVC中常用的就是Controller与View。但是我们常常会需要访问静态资源,如html,js,css,image等。

默认的访问的URL都会被DispatcherServlet所拦截,但是我们希望静态资源可以直接访问。该肿么办呢?

在配置文件:web.xml可以看到:


    servlet>
        servlet-name>appServletservlet-name>
        servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        init-param>
            param-name>contextConfigLocationparam-name>
            param-value>/WEB-INF/spring/appServlet/servlet-context.xmlparam-value>
        init-param>
        load-on-startup>1load-on-startup>
    servlet>
        
    servlet-mapping>
        servlet-name>appServletservlet-name>
        url-pattern>/url-pattern>
    servlet-mapping>

静态资源访问,其实方法有多种,如:通过开放tomcat的defaultServlet,修改默认的url-parttern。

但是SpringMVC提供了更为便捷的方式处理静态资源。

解决方案:

直接在spring-mvc.xml中添加资源映射。


    mvc:default-servlet-handler/>
    
    
   mvc:resources mapping="/error/**" location="/error/" />

 mvc:default-servlet-handler/>:一定要配置,否则后面的映射会失效

mapping:映射

location:本地资源路径,注意必须是webapp根目录下的路径。

两个*,它表示映射resources/下所有的URL,包括子路径(即接多个/) 

这样我们就可以直接访问该文件夹下的静态内容了。

陷阱:

配置的location一定要是webapp根目录下才行,如果你将资源目录,放置到webapp/WEB-INF下面的话,则就会访问失败。这个问题常常会犯。

WEB-INF目录作用

WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
 
当然,你非要放在WEB-INF中,则必须修改resources映射,如:
mvc:resources mapping="/js/**" location="/WEB-INF/js/" />

 


    servlet>
        servlet-name>appServletservlet-name>
        servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        init-param>
            param-name>contextConfigLocationparam-name>
            param-value>/WEB-INF/spring/appServlet/servlet-context.xmlparam-value>
        init-param>
        load-on-startup>1load-on-startup>
    servlet>
        
    servlet-mapping>
        servlet-name>appServletservlet-name>
        url-pattern>/url-pattern>
    servlet-mapping>

6.Spring MVC静态资源访问

标签:size   常用   ini   div   java   web应用   根目录   param   att   

原文地址:https://www.cnblogs.com/lukelook/p/9639459.html


评论


亲,登录后才可以留言!