900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > springMVC设置静态资源过滤器 过滤js css images等静态资源

springMVC设置静态资源过滤器 过滤js css images等静态资源

时间:2018-11-21 06:27:06

相关推荐

springMVC设置静态资源过滤器 过滤js css images等静态资源

首先看个index.jsp首页的代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>主页</title><script src="js/jquery.min.js"></script><script>$(function(){$("#btn").click(function(){alert("hello btn");});});</script></head><body><br/><button id="btn">提交</button></body></html>

页面代码很简单,就一个简单的按钮,点击弹出“hello btn”这样一个事件。但在没有配置静态资源过滤器的情况下,springMVC会拦截掉jquery.min.js文件的加载,让这样简单的一个需求都实现不了。

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

在上述DispatcherServlet的配置中,我们默认该控制器会控制所有资源,所有请求。页面在加载过程中,需要请求静态资源的js文件,而这一请求被该控制器所拦截,所以demo的效果就是点击按钮没有任何反应,跟没有引入js文件是一个效果。

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

在springmvc.xml文件中加入以上三个资源映射,当然具体的文件名可以与上面的不一样。这样可以在加载js文件的时候,跳过DispatcherServlet的控制。当然还有其它方法可以实现,比如在DispatcherServlet前加上defaultServlet,先对js等静态资源进行拦截,这样该类请求就不会交由springmvc处理了。

这里提一下误区,上面提到的js/css/images三个Directory静态资源目录,千万千万不能建在WEB-INF目录下,这种目录在配置文件中识别不了,并且mvc:resources会显示红色。直接创建在webapp下面,让该类目录与WEN-INF平级。

设置有效的资源目录,在springmvc.xml文件中不会出现红色的报错,另外,映入的js文件,通过ctrl+鼠标左键可以直接访问查看。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。