我使用Glassfish 3.0.1 build 22来运行自定义webapp。出于身份验证的目的,我使用的是自定义Filter,它有一个init()方法:
public class MyFilter extends HttpServlet implements Filter
public void init(FilterConfig filterConfig) throws ServletException { ..// dostuff }
通常在启动时调用init()方法一次。现在我有一个奇怪的情况,init()方法被多次调用。我无法找到解释。
是什么导致这种情况?
答案 0 :(得分:0)
我正在运行Glassfish 3.1.1 build 12。
我有一个HttpServlet
,Glassfish在每次请求时都会调用#init(ServletConfig)
,可能与您遇到的情况类似。
事实证明我在我的servlet中覆盖了该方法但未能调用super.init(servletConfig)
。将调用添加到超类的方法后,Glassfish只按预期调用了一次init
方法。
我想知道你为什么要实施Filter
而是延长HttpServlet
?您是否可能没有正确初始化超类,Glassfish会以某种方式检测到这种情况并尝试再次调用init?