我正在使用嵌入式 Jetty 9 并尝试使用 ServletContext.addListener(T)
添加HttpSessionListener
来 self 的Servlet.init()
方法。但是,我的 session 监听器上的方法永远不会被调用。同时,当我让我的监听器类实现 ServletRequestListener
,请求监听器相关的方法被调用。我确实打电话getSession()
,因此应该触发 session 创建。
有什么想法、解决方法吗?我是否误读了规范?已知问题?
最佳答案
ServletContext.addListener()
仅在狭窄的范围内受支持(根据规范)。
它可以从 2 个代码路径之一使用。
-
ServletContainerInitializer.onStartup(Set<Class<?>> c, ServletContext ctx)
-
ServletContextListener.contextInitialized(ServletContextEvent sce)
ServletContext.addListener()
的所有其他用途无效。
关于java - 以编程方式将 HttpSessionListener 添加到 Jetty 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486689/