访问项目下的静态资源

1、若将 DispatcherServlet 请求映射配置为/,则Spring MVC将捕获 WEB 容器的所有请求,包括静态资源的请求,SpringMVC当成一个普通请求处理,所以会找不到对应处理器而导致错误。

提供以下三种方式处理外界对WebRoot下静态资源的请求

(1)在SpringMVC 的配置文件中配置 <mvc:default-servlet-handler/> 的方式解决静态资源的问题,<mvc:default-servlet-handler/> 将在 SpringMVC 上下文中定义一个 DefaultServletHttpRequestHandler,它会对进入 DispatcherServlet 的请求进行筛查,

如果发现是没有经过映射的请求,就将该请求交由 WEB应用服务器默认的 Servlet 处理,

如果不是静态资源的请求,才由 DispatcherServlet 继续处理。

在springmvcxml中增加一行配置:

       <!-- 处理静态资源1  可以直接访问WebRoot下除WEB-INF外的所有静态资源-->
		<!-- 访问方式(static文件夹在WebRoot下和WEB-INF同级):
          http://localhost:8080/Springmvc3/static/1122.jpg -->
		 <mvc:default-servlet-handler/> 

(2)/static/** 映射到 ResourceHttpRequestHandler 进行处理,location 指定静态资源的位置,可以是 web application 根目录下、jar 包里面。(。。访问WEB-INF中的)

      <!-- 处理静态资源2  **表示目录下的所有,或者是目录与子目录下的所有-->
	   
		<mvc:resources mapping="/static/css/**" location="/static/css/" />
		<mvc:resources mapping="/static/images/**" location="/static/images/" />
		<mvc:resources mapping="/static/js/**" location="/static/js/" />
	
		<!-- 访问方式:http://localhost:8080/Springmvc3/static/1122.jpg-->
		<mvc:resources mapping="/views/**" location="/WEB-INF/views/" />  
		<mvc:resources mapping="/static/**" location="/WEB-INF/static/" /> 
		

(3)

一般 WEB 应用服务器默认的 Servlet 的名称都是 default.若所使用的 WEB 服务器的默认 Servlet 名称不是 default,则需要通过 web.xml 属性显式指定。

 由 servlet 处理这些资源是一定了。不过,不同的 servlet 容器/应用服务器,处理这些静态资源的 servlet 的名字不大一样:

    Tomcat, Jetty, JBoss, and GlassFish:默认 Servlet 名字为 "default"

    Google App Engine:默认 Servlet 名字为 "_ah_default"

    Resin:默认 Servlet 名字为 "resin-file"

    WebLogic:默认 Servlet 名字为 "FileServlet"

    WebSphere:默认 Servlet 名字为 "SimpleFileServlet"

在web.xml配置文件中加入配置:

       <!-- 处理静态资源3 -->
		  <!-- 访问方式: http://localhost:8080/Springmvc3/static/1122.jpg -->	
		<servlet-mapping>
			<servlet-name>default</servlet-name>
			<url-pattern>*.jpg</url-pattern>
		</servlet-mapping>
		<servlet-mapping>
			<servlet-name>default</servlet-name>
			<url-pattern>*.jsp</url-pattern>
		</servlet-mapping>
		<servlet-mapping>
			<servlet-name>default</servlet-name>
			<url-pattern>*.css</url-pattern>
		</servlet-mapping> 

 

转载于:https://my.oschina.net/8824/blog/2251827

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值