Spring MVC:解决静态资源无法访问的问题

解决静态资源不能访问的问题,解决方式有三种:

  • 使用defaultServlet
    打开tomcat中conf/web.xml,在这个文件中有一个叫做DefaultServlet的配置,当系统找不到处理某次url请求该交由谁处理的时候,就会交给这个servlet处理。我们可以通过使用这个DefaultServlet来处理静态资源,在你的系统中的web.xml文件中添加下面配置,要添加在DispatcherServlet的前面,这样系统就会将带有下面后缀名的请求交给defaultservlet来处理:
    <servlet-mapping>
        <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> 
  • 使用mvc:default-servlet-handler
    在springmvc.xml文件中添加下面配置即可,该方式会对所有的请求进行处理,然后交由相应的servlet,这种方式其实最终也是由DefaultServlet来处理:
      <mvc:default-servlet-handler/> 
    
  • 使用mvc:resources
    在spring mvc中提供了mvc:resources标签用来解决静态资源无法访问的问题,只需要在springmvc.xml的配置文件中添加下面内容即可,这样会交给spring mvc的ResourceHttpRequestHandler类来处理:
      <mvc:resources mapping="/images/**" location="/images/" /> 

    其中:

    • mapping 表示对该资源的请求。注意,后面是两个星号**。
    • location 表示静态资源所在目录,在我的项目中就在webapp下创建一个images文件夹,我会将所有的图片放到这个文件夹下。

猜你喜欢

转载自www.cnblogs.com/jicheng1996/p/9823930.html