使用 Request Dispatcher 的 Java Filter - 使用 JavaEE 6 Annotations

标签 java java-ee-6 servlet-filters dispatcher

我已经使用 JaveEE 6 注释为“/folder/*”创建了一个过滤器

@WebFilter("/folder/*")

但是当我去“/test.html”时有一个电话

request.getRequestDispatcher("/folder/test.jsp").forward(request, response);

在doGet中,页面没有被过滤。在浏览器中手动转到“/folder/test.jsp”时,过滤器工作正常。我怎样才能在使用调度程序时让它工作?

我找到了一个解决方案,用于在多个位置创建过滤器的 xml 方式,例如 herehere但一直无法找到使用注释的解决方案。谢谢!

最佳答案

注释似乎有一个 dispatcherTypes属性来支持这一点,所以下面应该工作:

@WebFilter(value={"/folder/*"},
           dispatcherTypes={DispatcherType.REQUEST, DispatcherType.FORWARD})

关于使用 Request Dispatcher 的 Java Filter - 使用 JavaEE 6 Annotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647775/

相关文章:

jakarta-ee - EJB中@Resource注解的mappedName和lookup属性有什么区别?

java - 在对话中用 jee6 替换 Seam

java - 如何删除JSP页面中的所有“\n”? (使用javax.servlet.Filter吗?)

jsp - 如何在服务器发送响应之前使用 servlet 过滤器拦截页面请求,将 jsessionid 附加到响应 URL

servlets - 从 HttpServletRequest 获取美化后的 URL

java - Java 中的错误递增

java - 如何使用java配置在spring中配置waffle

java - 如何在复杂的继承层次结构中找到哪个类重写了某个函数?

java - 为什么这个 map.put() 会覆盖现有的值事件,尽管 map.containskey() 返回 false?

java - 在多个服务器上查找相同的 EJB