Spring MVC -- 去掉静态资源的拦截

 1  <!-- springmvc的前端控制器 -->
 2     <servlet>
 3         <servlet-name>springMVC</servlet-name>
 4         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 5 
 6         <!-- contextConfigLocation不是必须的
 7         如果不配置contextConfigLocation
 8         springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->
 9 
10         <init-param>
11             <param-name>contextConfigLocation</param-name>
12             <param-value>classpath:spring/springmvc.xml</param-value>
13         </init-param>
14         <load-on-startup>1</load-on-startup>
15     </servlet>
16 
17     <servlet-mapping>
18         <servlet-name>springMVC</servlet-name>
19         <url-pattern>/</url-pattern>
20     </servlet-mapping>
/ 表示拦截所有的请求,包括静态资源 

注意:当前端使用jsp java后端模板引擎时,/  不会匹配到 .jsp ( 即 不会进入到项目中dispathservlet中,不会拦截 。jsp的请求,因为 jsp 在被访问时会解析,生成servlet,然后编译servlet,之后会被编译成为一个.class文件,实际是一个servlet在运行,因此可由web服务器直接访问。)

/* 会匹配到。jsp的路径。即 会匹配项目所有路径。
<url-pattern>/</url-pattern> --表示拦截所有的请求,包括静态资源

2、去静态资源拦截有三种方式

1、在web.xml中配置映射
2、在springMVC.xml中配置映射
3、在springMVC.xml中添加静态资源默认Servlet处理

3、方式一

在web.xml中配置映射

 1     <!-- 对静态资源的配置 -->
 2     <servlet-mapping>
 3         <servlet-name>default</servlet-name>
 4         <url-pattern>*.js</url-pattern>
 5         <url-pattern>*.css</url-pattern>
 6         <url-pattern>*.ico</url-pattern>
 7         <url-pattern>/img/*</url-pattern>
 8         <url-pattern>/fonts/*</url-pattern>
 9         <url-pattern>/font/*</url-pattern>
10     </servlet-mapping>
Tomcat, Jetty, JBoss 自带的默认Servlet的名字 -- "default"
WebLogic 自带的 默认Servlet的名字  -- "FileServlet"
WebSphere  自带的 默认Servlet的名字 -- "SimpleFileServlet"

可以根据自身情况,来配置映射

注意: 请将它放在所有Servlet的最前面(为了让它最先匹配),这样的话性能上应该比较好 


4、方式二

在springMVC.xml中添加静态资源的映射

1     <!-- 资源映射 -->
2     <mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>
3     <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>

根据实际情况自行配置


5、方式三

在springMVC.xml中添加静态资源默认Servlet处理

1 <mvc:default-servlet-handler/>
2 
3 <!-- 也可以自行手动配置,自定义servlet -->
4 <mvc:default-servlet-handler default-servlet-name="myDefaultServlet"/>

注意: 这种方式对spring版本必须要求3.0.5及以上

 

猜你喜欢

转载自www.cnblogs.com/weixupeng/p/9510124.html