【问题标题】:Spring 3.2 and @WebFilter annontation..is it supported?Spring 3.2 和 @WebFilter 注释..它支持吗?
【发布时间】:2013-07-22 19:55:48
【问题描述】:

我似乎找不到任何关于使用 @WebFilter 注释以及让 Spring 3.2 AbstractAnnotationConfigDispatcherServletInitializer 正确处理使用的参数的内容。

Spring 3.2 是否支持该注解?

编辑:基于尼古拉斯的回答

如果我使用 @WebFilter 注释,并在其中设置参数...看起来 AbstractAnnotationConfigDispatcherServletInitializer registerServletFilter 不会查看这些注释并从这些参数中正确设置内容:例如 url-mappings

知道Spring 3.2支持Servlet 3.0,不应该支持@WebFilter吗?

还是我错过了 WebFilter 注释的全部要点?

编辑 2:

当我部署我的战争并在该战争中定义@WebFilters 时,容器看起来会“注册”那些......但是,由于某种原因,即使设置了正确的 urlPatterns,当请求进入 DispatchServlet 时。 ..这就像过滤器没有被调用。

【问题讨论】:

    标签: spring spring-mvc servlet-filters


    【解决方案1】:

    @WebFilter 是一个 JEE6 组件,是 Servlet 3.0 的新组件。

    这不是 Spring 支持的东西,而是您的应用程序容器(Tomcat、WebSphere、Glassfish、JBoss...)

    这里的想法是将应用程序容器的配置转移到 Java,而不是使用 web.xml 部署描述符。

    编辑:

    在我看来,使用@WebFilter 注释将用于通过类路径扫描发现Filter。您所询问的AbstractAnnotationConfigDispatcherServletInitializer#registerServletFilter 方法正在接受Filter 并且不查看其上的注释。

    【讨论】:

    • 了解以上所有内容...谢谢。也许我需要更好地改写这个问题。
    • 是的,在 github 上查看了 src ...... registerServletFilter 不关心注释。我想我也明白你在说什么..@WebFilter regsiters 与 ServletContext..所以所有 servlet 都可以使用过滤器。我想知道如何让 Dispatch Servlet 使用它们..因为看起来它们在某些原因时没有被调用..我看到它们“注册”但是,它们没有被调用 DispatchServlet 被调用......真的很奇怪
    • 我想你可以利用(即覆盖)AbstractAnnotationConfigDispatcherServletInitializergetServletFilters() 方法为您的DispatcherServlet 指定Filterstatic.springsource.org/spring/docs/3.2.x/javadoc-api/org/…
    • 现在正在尝试,但是,看起来 Spring 使用 SerlvetNames,而不是 urlPatterns 来匹配过滤器
    猜你喜欢
    • 2014-10-22
    • 2012-02-25
    • 2011-03-01
    • 2011-11-23
    • 2018-01-16
    • 2016-04-17
    • 1970-01-01
    • 2011-03-26
    • 2011-02-19
    相关资源
    最近更新 更多