我的 Java webapp 中有一堆 servlet 上下文监听器,每个监听器都收集有关环境的一些信息。
其中一些依赖于另一个听众收集的信息。但是我无法确定监听器注册和调用的顺序,所以我不得不复制代码。
我知道监听器是按照他们在 web.xml 中的顺序注册的,但这对我来说听起来有点模糊,太模糊以至于无法依赖它。
你有什么建议可以解决我的问题吗?
最佳答案
所有 servlet 容器和 Java EE 容器都严格执行规范的这一部分。您可以依赖于监听器按照您在 web.xml 中指定的顺序调用的事实。
您可以拥有一个应用程序级别的数据结构 (HashMap),每个过滤器/监听器在遇到来自请求的数据时都会对其进行更新。这将让每个 Listener 只更新必要的内容。您可以将公共(public)代码放在基础 Listener 中,这样就不会出现代码重复。
关于java - 如何确定 web.xml 中监听器的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/178562/