SpringMVC引入js,css等静态文件的相关问题

本文介绍了SpringMVC中配置静态文件访问的方法,包括通过web.xml、spring配置文件的不同方式实现对js、css等静态资源的正确加载,并讨论了如何避免拦截静态文件。

今天,想起SpringMVC的一些注意事项,在引用js文件的时候,有多种方式而已进行引用,下面我来介绍下我了解到的:

我们在写web.xml配置文件的时候,经常会考虑url-parent的使用,它可以是/也可以是/*还可以是.do,此时我来回顾一下url-parent的配置模式

①/xxx:完全匹配/xxx的路径

②/xxx/*:匹配以/xxx开头的路径的所有,必须包含/xxx

③/*:匹配/下面的所有路径,请求可以进入到action或者controller,但是转发jsp时再次被拦截, 不能访问jsp页面

④.xx:匹配以xx结尾的路径,必须包含.xx,但不会影响访问静态资源

⑤/:默认模式,未被匹配的路径都会进入servlet,但是还是不能访问静态文件

 

一:因此,如果我们一开始就采用了/的方式,那么就需要补上配置来让静态文件可访问了,下面介绍三种方式:

<servlet-mapping>  

   <servlet-name>default</servlet-name>  

     <url-pattern>*.css</url-pattern>  

</servlet-mapping>    

<servlet-mapping>  

  <servlet-name>default</servlet-name>  

     <url-pattern>*.gif</url-pattern>  

</servlet-mapping>    

<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>

A:在web.xml中添加好配置后,在jsp页面就可以引用这些静态资源了

<script type="text/javascript" src="static/js/1.js"></script>(这种方法不能访问WEB-INF目录下的静态资源,也就是js目录必须是web根(可能是webapp,webContent等)目录下,否则是不能引用的;如果放在WEB-INF目录下,即使你使用<c:url value=“/WEB-INF/js/jquery.js”>也是会出现404错误的)

 

B:在相应的 -servlet.xml中添加spring配置<mvc:default-serlvet-handler>

如:<mvc:default-servlet-handler/>

这种方法只需要添加一行代码,在jsp页面中引用时和上面那种一样,同样也不能引用WEB-INF下的资源。

 

C:使用spring 3.0.4的新特性,在相应的 -servlet.xml中添加配置<mvc:resource>

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

或  3.2 <mvc:resources location="/WEB-INF/js/" mapping="/js/**" />

这种方法我写了两个配置,不同的地方只是location的值,一个是“/js/”,一个是“/WEB-INF/js/”;两种都可以,根据你自己的目录结构来引用。这就说明使用这种方式可以引用WEB-INF目录下的静态资源;这里的mapping属性的值用了ant的通配符方式,"/js/**"(两个"*")指location的值所表示的目录以及所有子目录;但是在jsp页面中引用时需要注意:

 

二:但是其实简单的做法就是,我们并不需要这么复杂,其实就是把所有需要springmvc dispatchservlet的地方,设置成.do就可以了,这样静态文件还是可以继续访问的。

<servlet-name>spring-mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup><!-- 大于等于0启动时加载此框架 -->
  </servlet>
  <servlet-mapping>
    <servlet-name>spring-mvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

 

以上就是我今天对SpringMVCy引入js等静态文件的一些思考,还有待加强,温故知新!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值