您的位置:首页 > 编程语言 > Java开发

springmvc拦截器实现

2016-12-01 00:00 471 查看
在springmvc中可以配置自己的拦截器,分别实现在请求方法之前、显示视图之前、显示视图之后调用拦截器中的方法。

首先创建一个java类,并且实现HandlerInterceptor接口,并且实现该接口中的三个方法。

/** * 该方法在目标方法之前被调用. * 若返回值为 true, 则继续调用后续的拦截器和目标方法. * 若返回值为 false, 则不会再调用后续的拦截器和目标方法. * <p> * 用途:做权限. 日志, 事务等. */
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
System.out.println("[FirstInterceptor] preHandle");
return true;
}

/** * 调用目标方法之后, 但渲染视图之前. * 用途:对请求域中的属性或视图做出修改. */
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("[FirstInterceptor] postHandle");
}

/** * 渲染视图之后被调用. * 用途:释放资源 */
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("[FirstInterceptor] afterCompletion");
}


设置好的自己的拦截器以后需要在springmvc中配置拦截器,在此处用同样道理实现了另一个拦截器,名为MySecondInterceptors。

在springmvc的配置文件中加入如下代码

<mvc:interceptors>
<!--表示在请求所有的控制器方法之前都会调用该拦截器-->
<bean class="com.springapp.interceptors.MyFirstInterceptors"/>

<!--表示在访问指定的控制器方法时才会调用的拦截器-->
<mvc:interceptor>
<mvc:mapping path="/user/"/>
<bean class="com.springapp.interceptors.MySecondInterceptors"/>
</mvc:interceptor>

</mvc:interceptors>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: