spring mvc 拦截器

实现拦截器,必须实现接口HandlerInterceptor : org.springframework.web.servlet.HandlerInterceptor

preHandle  :可以拦截请求

postHandle : 可以拦截响应

afterCompletion : jsp渲染完成后,最终显示出来

一、编写拦截器,实现HandlerInterceptor接口

public class MyInterceptor implements HandlerInterceptor{

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		// TODO Auto-generated method stub
		System.out.println("第一个拦截器 : 拦截请求");
		return true;//true 表示处理完成后,请求继续 false 表示截断请求
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("第一个拦截器 : 拦截响应");
	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		// TODO Auto-generated method stub
		System.out.println("第一个拦截器 : 渲染完成");
	}

}

二、配置springmvc.xml,将自定义拦截器配置到spring 容器中

1、默认拦截所有请求

    <!-- 将自定义拦截器配置到spring 容器中 : 默认拦截所有请求 -->
    <!-- 拦截所有请求 -->
  <mvc:interceptors>
  	<bean class="com.zyfmvc.interceptor.MyInterceptor"></bean>
  </mvc:interceptors>

2、指定拦截请求

  <!-- 拦截指定请求 -->
  <mvc:interceptors>
  	<mvc:interceptor>
  		<!-- 指定拦截路径 -->
  		<mvc:mapping path="/handler/*"/>
  		<!-- 指定排除拦截路径 -->
  		<mvc:exclude-mapping path="/handler/testUpload"/>
  		<bean class="com.zyfmvc.interceptor.MyInterceptor"></bean>
  	</mvc:interceptor>
  </mvc:interceptors>

3、多个拦截器

    <!-- 多个拦截器 -->
  <mvc:interceptors>
  	<mvc:interceptor>
  		<mvc:mapping path="/handler/*"/>
  		<bean class="com.zyfmvc.interceptor.MyInterceptor"></bean>
  	</mvc:interceptor>
 
  	<mvc:interceptor>
  		<mvc:mapping path="/handler/*"/>
  		<bean class="com.zyfmvc.interceptor.MySecInterceptor"></bean>
  	</mvc:interceptor>
  </mvc:interceptors>

拦截结果如下(1-2-2-1-2-1):

第一个拦截器 : 拦截请求
第二个拦截器:拦截请求
第二个拦截器:拦截响应
第一个拦截器 : 拦截响应
第二个拦截器:渲染完成
第一个拦截器 : 渲染完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值