我正在使用 Glassfish 3.0.1 build 22 来运行自定义 Web 应用程序。出于身份验证的目的,我使用自定义过滤器,它有一个 init() 方法:
public class MyFilter extends HttpServlet implements Filter
public void init(FilterConfig filterConfig) throws ServletException { ..// dostuff }
通常 init() 方法在启动时调用一次。现在我遇到了一个奇怪的情况,init()方法被调用了几次。我找不到对此的解释。
什么可能导致这种情况?
最佳答案
我正在运行 Glassfish 3.1.1 build 12。
我有一个 HttpServlet
,Glassfish 在每个请求上调用 #init(ServletConfig)
,也许与您遇到的情况类似。
事实证明,我在 servlet 中重写了该方法,但未能调用 super.init(servletConfig)
。添加对父类(super class)方法的调用后,Glassfish 仅按预期调用了我的 init
方法一次。
我想知道为什么你要实现 Filter
但扩展 HttpServlet
?是否有可能您没有正确初始化父类(super class),而 Glassfish 以某种方式检测到这一点并尝试再次调用 init?
关于java - Glassfish 过滤器初始化被调用多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439274/