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