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; //放行
}
}
