SpringMVC学习笔记——拦截器

1. 配置springmvc.xml

<mvc:interceptors>
		<!-- 配置自定义的拦截器 -->
		<bean class="com.atguigu.springmvc.interceptors.FirstInterceptor"></bean>
		
		<!-- 配置拦截器(不)作用路径 -->
		<mvc:interceptor>
			<mvc:mapping path="/emps"/>
			<bean class="com.atguigu.springmvc.interceptors.SecondInterceptor"></bean>
		</mvc:interceptor>
</mvc:interceptors>

class为拦截器类的路径

2. 实现拦截器接口 

public class FirstInterceptor implements HandlerInterceptor{	
	/*
	 * 该方法在目标方法之前被调用
	 * 若返回值为true,则继续调用后续的拦截器和目标方法
	 * 若返回值为false,则不会再调用后续的拦截器和目标方法
	 * 用法:可以考虑做权限,日志,事务等
	 * */
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		// TODO Auto-generated method stub
		
		System.out.println("[FirstInterceptor] preHandle");
		return true;
	}
	
	/*
	 * 调用目标方法之后,但渲染视图之前
	 * 用法:可以对请求域中的属性或试图作出修改
	 * */
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		// TODO Auto-generated method stub
		System.out.println("[FirstInterceptor] postHandle");
		
	}
	/*
	 * 渲染视图之后调用
	 * 用法:释放资源
	 */
	
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		// TODO Auto-generated method stub
		System.out.println("[FirstInterceptor] afterCompletion");
		
	}	

}

多个拦截器执行顺序: preHandle正序执行,其余逆序执行

猜你喜欢

转载自blog.csdn.net/qq_41741389/article/details/88012729