gistfile1.txt Spring的handler mapping机制提供了handler interceptors,可以用来为特定的请求添加特定的功能,如,检测资金额等。handler mapping的拦截器必须实现HandlerInterceptor的接口。该接口定义了
Spring的handler mapping机制提供了handler interceptors,可以用来为特定的请求添加特定的功能,如,检测资金额等。 handler mapping的拦截器必须实现HandlerInterceptor的接口。该接口定义了三个方法: preHandler() - 在实际的handler被执行前被调用 postHandler() - 在handler被执行后被调用 afterCompletion() - 当request处理完成后被调用 preHandler()方法返回一个布尔值。可以使用该方法继续或者中断执行链。当返回true,继续执行链;如果返回false,则停止后续的执行。 Interceptor使用interceptors属性进行配置,该属性为HandlerMapping类的属性。 例如: package org.jxnd.handlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class MyHandlerInterceptor implements HandlerInterceptor{ @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("最后执行,释放资源"); } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("生成视图之前"); } @Override public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("请求之前"); return true; //放行 } }