还是直接上代码了;
不过还是有一个疑问没有搞清楚,例如下配置
<mvc:interceptors >
<mvc:interceptor>
<!-- 拦截/showUser/后的所有请求,包括静态资源文件 -->
<mvc:mapping path="/showUser/**" />
<bean class="com.test.inteceptor.HelloWorldInteceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
将会拦截/showUser/后的所有请求,包括静态资源文件,资源文件包括(CSS、Js、Image),在实际的环境中这些静态资源不需要被拦截,目前还在研究怎么能使得Inteceptor不拦截这些静态资源文件。
运行环境参照:http://xiaotao-2010.iteye.com/blog/1638827
1、SpringMVC的配置文件
spring-mvc-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!--
the application context definition for the springappDispatcherServlet
-->
<!-- 默认的注解映射的支持 -->
<context:annotation-config />
<!-- 启动时注解扫描器扫描包中的注解,目标包 base-package="*,*" 多个包以逗号分割-->
<context:component-scan base-package="com.test.controller" />
<!--启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<!-- 然后通过order属性 来指定顺序 handler 的加载器-->
<property name="order" value="1"/>
</bean >
<!-- 在使用Spring MVC 映射配置文件时候使用 -->
<!-- HandlerMapping
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
-->
<!-- HandlerAdapter
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
-->
<!-- 视图解释类 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 对静态资源文件的访问 方案一 -->
<mvc:default-servlet-handler/>
<!-- 对静态资源文件的访问 方案二 (二选一)
<mvc:resources mapping="/img/**" location="/img/" cache-period="31556926"/>
-->
<!-- -->
<mvc:interceptors >
<mvc:interceptor>
<!-- 拦截/showUser/后的所有请求,包括静态资源文件 -->
<mvc:mapping path="/showUser/**" />
<bean class="com.test.inteceptor.HelloWorldInteceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- 处理器 (非注解时使用)
<bean name="/hello" class="com.test.controller.HelloWorldController"/>
-->
</beans>
2、自定义的Inteceptor
package com.test.inteceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class HelloWorldInteceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object o, Exception e)
throws Exception {
System.out.println("拦截器结束。。。。");
// TODO Auto-generated method stub
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object o, ModelAndView mv) throws Exception {
System.out.println("拦截器工作。。。。");
String s = "------- Inteceptor --------: HelloWord !";
System.out.println(s);
mv.addObject("intep",s);
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object o) throws Exception {
// TODO Auto-generated method stub
System.out.println("拦截器开启。。。。");
return true;
}
}
3、访问
访问 URL :http://localhost:8080/test-webapp/jsp/**后的所有资源,将会被拦截
Console输出:
写道
拦截器开启。。。。
拦截器工作。。。。
------- Inteceptor --------: HelloWord !
拦截器结束。。。。
分享到:
相关推荐
本篇文章主要介绍了防止SpringMVC拦截器拦截js等静态资源文件的解决方法,具有一定的参考价值,有兴趣的同学可以了解一下
SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi
intellij idea 创建maven springmvc4_maven_mybatis3 web框架的demo
一个ssm项目 整合MyBatis+spring+springmvc的小例子,使用Mysql数据库,手写分页,没有用插件,还有增删查功能,文件放了sql文件,可以导入数据库,看效果,适合新手学习的例子.
springmvc集成的一个案例,包含jar的引入,框架的集成配置,以及代码范例。
springmvc是常用的一种框架,学习springmvc非常重要,故需要良好教程资料
01_springmvc基础_3
01_springmvc基础_1
01_springmvc基础_2
Maven2.0.11_SpringMVC2.5_Tiles2.0.5开发的一个小例子,里面附有自己写的一个运行指南,很详细,可以实际运行。
51CTO下载-传智播客_SpringMVC教程_资料和源码,里面含全部的内容
springmvc部分_源码,可下载直接进行调试学习
整合springmvc_spring_mybatis框架后整理的学习笔记以及整合方法。
SpringMVC讲义_Java高薪训练营1
springMvc框架入门 可以接收浏览器请求 回调页面展示
springMVC凑字数恍恍惚惚急急急吉扭扭捏捏呢
这是spring+springmvc+mybatis的简单示例。学习springmvc整合的
spring mvc例子,大家可以看一看
15_SpringMVC_控制器中有多个方法对应同一个请求的情况.mp4 17_SpringMVC_@RequestMapping注解的value属性.mp4 20_SpringMVC_测试form表单是否能够发送put和delete请求方式的请求.mp4 22_SpringMVC_@RequestMapping...
springMVC_Mybatis整合的所有jar,不会有版本冲突!