【发布时间】:2009-12-28 12:14:31
【问题描述】:
我要解决的问题是我想根据数据库检查所有传入的 GET url。如果 url 存在于数据库中,则应将其传递给某些控制器。我正在使用 Spring 3.0。
首先我尝试创建一个interceptor 并将其添加到 DefaultAnnotationsHandlerMapping。原来我无法修改 preHandle() 中的 url。计划是修改请求中的 url,然后让带注释的控制器处理其余部分。
接下来我尝试制作自定义 HandleMapping。我扩展了AbstractUrlHandlerMapping 并制作了我自己的getHandlerInternal(),它返回一个带有控制器名称的字符串,这正在工作。但我更喜欢一个解决方案,我可以修改请求中的 url 并让带注释的控制器处理它。
在写这篇文章时,我想到也许 servlet 过滤器是最合适的解决方案。如果是这种情况,我可以让 Spring 将 EntityManager 注入过滤器吗?任何我可以扩展的 Spring 类使这更容易?
解决第一段中问题的最正确方法是什么?如果是 servlet 过滤器,请给我一些关于如何编写它的指示。
【问题讨论】:
标签: java spring spring-mvc