执行位置
在请求到达DispacherServlet后,在DispacherServlet调用某个Controller类执行
拦截器用途:
对用户是否登录做出判断
拦截产生的日志信息
拦截器的实现
public class MyInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler)
throws Exception {
//return false 则进行拦截,不继续往下调用
return true;
}
}
实现HandlerInterceptor中各方法的运行顺序以及关系
拦截器的配置
mvc:mapping path="" 需要过滤的路径
mvc:exclude-mapping path=""排除路径
bean class=“实现HandlerInterceptor类的全名” 进行这个过滤的类
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*"/>
<mvc:exclude-mapping path="/login/*"/>
<bean class="实现HandlerInterceptor类的全名" />
</mvc:interceptor>
</mvc:interceptors>