JAVA Web静态资源问题的三种解决办法

今天碰到一个问题,SSM项目WEB-INF目录下的静态资源例如.css .js .font等文件无法访问,原因是在web.xml里面配置的springmvc的DispatcherServlet的mapping为/,则Spring MVC将捕获Web容器所有的请求,因此不能对静态资源进行访问

<servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

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

下面列出解决方案
方法一:
在springMVC-servlet.xml中配置:

default-servlet-handler />

方法二:
在web.xml中DispatcherServlet设置的spingmvc配置文件中加入mvc:resources,例如:

<mvc:resources location="/js/" mapping="/js/**">mvc:resources>
<mvc:resources location="/css/" mapping="/css/**">mvc:resources>

方法三:
在web.xml中添加servlet-mapping

<servlet-mapping>   
    <servlet-name>defaultservlet-name>  
    <url-pattern>*.jpgurl-pattern>     
servlet-mapping>    
<servlet-mapping>       
    <servlet-name>defaultservlet-name>    
    <url-pattern>*.jsurl-pattern>    
servlet-mapping>    
<servlet-mapping>        
    <servlet-name>defaultservlet-name>       
    <url-pattern>*.cssurl-pattern>      
servlet-mapping>    

你可能感兴趣的:(java)