在Spring MVC中调用控制器之前进行预检查

时间:2013-06-28 20:13:48

标签: java spring spring-mvc spring-security struts

我最近开始研究使用弹簧安全性的spring MVC项目。

在用户的请求到达控制器之前,我必须做一些预检查。

这是我想要实现的,就像我在struts和struts中工作了很多,我们可以将所有的动作类扩展到一个超类,让我们说BaseAction然后在这里写一些验证,以便它们被调用在调用子类方法之前。

我想在这里做同样的事情,但不知道如何开始。

我不能使用过滤器,因为我需要在预检中进行数据库调用和Web服务调用。

我只需要指针。

1 个答案:

答案 0 :(得分:3)

您可以使用HandlerInterceptorAdapter实现拦截器。

http://static.springsource.org/spring/docs/3.0.x/reference/mvc.html#mvc-handlermapping-interceptor

以XML格式配置applicationContext。

<mvc:interceptors>
    <bean class="my.package.MyInterceptor" />
</mvc:interceptors>

拦截器。

public class MyInterceptor extends HandlerInterceptorAdapter {

    public boolean preHandle(
        HttpServletRequest request, 
        HttpServletResponse response, Object handler) {

        // your logic
        return true;
    }
}
  

如果执行链应继续执行下一个拦截器或处理程序本身,则返回 true。否则,DispatcherServlet假定这个拦截器已经处理了响应本身。