springMVC框架学习(8)-springmvc拦截器

1.定义

Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理。
定义拦截器实现HandlerInterceptor接口

public class MyHandlerInterceptor implements HandlerInterceptor {
	//controller执行前调用此方法
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		System.out.println("执行了MyHandlerInterceptor1的前置方法......");
		return true; //false:拦截	true:放行
	}
	//controller执行前调用此方法
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		System.out.println("执行了MyHandlerInterceptor1的执行方法......");
	}
	//controller执行后且视图返回后调用此方法
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		System.out.println("执行了MyHandlerInterceptor1的后置方法......");
	}
}

2.拦截器配置

在springmvc.xml

<!-- 拦截器配置 -->
<mvc:interceptors>
	<mvc:interceptor>
		<mvc:mapping path="/*"/>
		<bean class="com.djc.ssm.interceptor.MyHandlerInterceptor"/>
	</mvc:interceptor>
</mvc:interceptors>

3.拦截器执行顺序

如果有多个拦截器

<!-- 拦截器配置 -->
<mvc:interceptors>
	<mvc:interceptor>
		<mvc:mapping path="/*"/>
		<bean class="com.djc.ssm.interceptor.MyHandlerInterceptor1"/>
	</mvc:interceptor>
	<mvc:interceptor>
		<mvc:mapping path="/*"/>
		<bean class="com.djc.ssm.interceptor.MyHandlerInterceptor2"/>
	</mvc:interceptor>
</mvc:interceptors>

测试结果:

执行了MyHandlerInterceptor1的前置方法......
执行了MyHandlerInterceptor2的前置方法......
执行了MyHandlerInterceptor2的执行方法......
执行了MyHandlerInterceptor1的执行方法......
执行了MyHandlerInterceptor2的后置方法......
执行了MyHandlerInterceptor1的后置方法......

可用做登录验证,了解即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值