【问题标题】:How to do filter-mapping with servlet-name in Guice Servlet?如何在 Guice Servlet 中使用 servlet-name 进行过滤器映射?
【发布时间】:2011-08-28 17:37:09
【问题描述】:

在我的 web.xml 中有

<filter>
    <filter-name>authFilter</filter-name>
    <filter-class>com.mystuff.AuthFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>authFilter</filter-name>
    <servlet-name>requestFactoryServlet</servlet-name>
</filter-mapping>

<!-- Servlets -->
<servlet>
    <servlet-name>requestFactoryServlet</servlet-name>
    <servlet-class>com.google.web.bindery.requestfactory.server.RequestFactoryServlet</servlet-class>
    <init-param>
        <param-name>symbolMapsDirectory</param-name>
        <!-- You'll need to compile with -extras and move the symbolMaps directory 
            to this location if you want stack trace deobfuscation to work -->
        <param-value>WEB-INF/classes/symbolMaps/</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>requestFactoryServlet</servlet-name>
    <url-pattern>/gwtRequest</url-pattern>
</servlet-mapping>

我正在尝试将其转换为使用 Guice Servlet 配置而不是 web.xml 配置。

我不知道如何做与 Guice 中的等效项。我只看到了如何过滤模式的示例,而不是特定的 servlet。

【问题讨论】:

    标签: java servlets guice


    【解决方案1】:

    在 web.xml 中定义一个 Guice 监听器:

    <listener>
        <listener-class>xxx.GuiceServletConfig</listener-class>
    </listener>
    

    并实现这个监听器:

    public class GuiceServletConfig extends GuiceServletContextListener {
    
        @Override
        protected Injector getInjector() {
            return Guice.createInjector(new ServletModule() {
    
                @Override
                protected void configureServlets() {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("symbolMapsDirectory", "WEB-INF/classes/symbolMaps/");
                    serve("/gwtRequest").with(RequestFactoryServlet.class, params);
    
    
                }
    
            });
        }
    
    }
    

    【讨论】:

    • 实际上您的示例不完整:您没有将 authFilter 映射到作为此问题主题的 servlet。我还在寻找这样的答案...
    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 2011-04-10
    • 2013-10-05
    • 2019-12-26
    • 2012-01-03
    • 2015-04-27
    • 2012-01-24
    • 2012-04-24
    相关资源
    最近更新 更多