springMVC--拦截器

拦截器

定义

l  Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理

局部拦截器

l  针对某个HandlerMapping进行配置。

只对当前HandlerMapping有效。


	
		
			
			
		
	

	
	

拦截器代码编写:实现HandlerInterceptor接口:

Public class HandlerInterceptor1 implements HandlerInterceptor{
	/**
	 * controller执行前调用此方法
	 * 返回true表示继续执行,返回false中止执行
	 * 这里可以加入登录校验、权限拦截等
	 */
	@Override
	Public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		// TODO Auto-generated method stub
		Return false;
	}
	/**
	 * controller执行后但未返回视图前调用此方法
	 * 这里可在返回用户前对模型数据进行加工处理,比如这里加入公用信息以便页面显示
	 */
	@Override
	Public void postHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// TODO Auto-generated method stub}
	/**
	 * controller执行后且视图返回后调用此方法
	 * 这里可得到执行controller时的异常信息
	 * 这里可记录操作日志,资源清理等
	 */
	@Override
	Public void afterCompletion(HttpServletRequest request,
			HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		// TODO Auto-generated method stub		
	}
}

全局拦截器

l  拦截所有请求。



	
	
		
		
	
	
		
		
	


springMVC--拦截器_第1张图片

测试1

拦截器1放行,拦截器2放行:

HandlerInterceptor1.........preHandle

HandlerInterceptor2.........preHandle

HandlerInterceptor2.........postHandle

HandlerInterceptor1.........postHandle

HandlerInterceptor2.........afterCompletion

HandlerInterceptor1.........afterCompletion

测试2

拦截器1放行,拦截器2阻止:

HandlerInterceptor1.........preHandle

HandlerInterceptor2.........preHandle

HandlerInterceptor1.........afterCompletion

测试3:

拦截器1阻止,拦截器2阻止:

HandlerInterceptor1.........preHandle



你可能感兴趣的:(JavaEE,springmvc)