我最近开始研究一个使用 Spring Security 的 Spring MVC 项目。
在用户的请求到达控制器之前,我必须做一些预检查。
这就是我想要实现的目标,就像我在 struts 中做了很多工作一样,在 struts 中,我们可以将所有动作类扩展为一个超类,假设BaseAction
然后在这里编写一些验证,以便在调用子类方法之前调用它们。
我想在这里实现同样的目标,但不知道如何开始。
我不能使用过滤器,因为我需要在预检查中进行数据库调用和 Web 服务调用。
我只需要指针。
我最近开始研究一个使用 Spring Security 的 Spring MVC 项目。
在用户的请求到达控制器之前,我必须做一些预检查。
这就是我想要实现的目标,就像我在 struts 中做了很多工作一样,在 struts 中,我们可以将所有动作类扩展为一个超类,假设BaseAction
然后在这里编写一些验证,以便在调用子类方法之前调用它们。
我想在这里实现同样的目标,但不知道如何开始。
我不能使用过滤器,因为我需要在预检查中进行数据库调用和 Web 服务调用。
我只需要指针。
您可以使用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 假定此拦截器已经处理了响应本身。