gpt4 book ai didi

java - 向 guice servlet 添加过滤器

转载 作者:行者123 更新时间:2023-11-30 10:43:27 25 4
gpt4 key购买 nike

我使用 guice servet 创建了一个运行良好的 servlet:

protected Injector getInjector() {
return Guice.createInjector(new ServletModule() {
protected void configureServlets() {
bind(MyService.class).to(MyServiceImpl.class);
serve("/myservlet").with(MyServlet.class);
}
});
}

我的 servlet 看起来像这样:

@Inject
private MyService myService;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().print(myService.hello("John Doe").toString());
}

现在我想给它添加一个过滤器,比如:

            bind(MyService.class).to(MyServiceImpl.class);
filter("/*").through(MyFilter.class);
serve("/myservlet").with(MyServlet.class);

我的过滤器看起来像这样:

@Singleton public class MyFilter implements Filter { 
public void init(FilterConfig filterConfig) throws ServletException { }
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("Yeah");
}
public void destroy() { }
}

一旦我添加过滤器,servlet 就不会再被调用。

当我删除过滤器时,servlet 再次工作。

我做错了什么?

最佳答案

问题不在于您的 Guice 程序集,而在于您的过滤器实现。您必须调用:

chain.doFilter(request, response);

在您的 doFilter 方法中通过过滤器传递处理。您可以在 javadoc 中阅读有关典型过滤器的更多信息.

关于java - 向 guice servlet 添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37746705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com