Spring为我们提供了一个适配器org.springframework.web.servlet.handler.HandlerInterceptorAdapter,继承这个类可以实现自己需要的拦截器。
这个类有三个方法:
//预处理(每次请求过来的时候先执行这个拦截)
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {return true;}
//后处理(在已经请求到业务逻辑后,再执行这个拦截处理,一般用于对ModelAndView的一个修改)
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception {}
//返回处理(请求逻辑已经完了,页面也已经得到结果后执行的操作,可用于日志记录)
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e)throws Exception {};
基于注解的方式注入interceptors:
<!-- 访问拦截 依顺序执行,若是*或者/则意为拦截所有-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/**"/>
<bean class="com.test.interceptor.Logininterface"/>
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/testinterface/**"/>
<bean class="com.test.interceptor.Interfaceterst"/>
</mvc:interceptor>
</mvc:interceptors>
拦截实类:
public class Interfaceterst extends HandlerInterceptorAdapter{
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//获取请求的接口路径
String path = request.getServletPath();
//根据自己的业务逻辑,公用方法,如登录超时拦截等,正常返回true,则会继续访问业务逻辑。否则返回一个自定义的格式return,页面接受后做出相应处理即可。
return true;
}
}
希望能帮到大家

本文详细介绍了Spring MVC框架中拦截器的使用方法,包括HandlerInterceptorAdapter类的三个核心方法:preHandle、postHandle和afterCompletion。同时,通过示例展示了如何基于注解方式配置拦截器,以及具体的拦截器实现类。
1615

被折叠的 条评论
为什么被折叠?



