如何确定Web中侦听器的顺序.xml

2022-09-01 18:48:56

我在 Java webapp 中得到了一堆 servlet 上下文侦听器,每个侦听器都收集了一些关于环境的信息。

其中一些依赖于另一个侦听器收集的信息。但是我无法确定侦听器的注册和调用顺序,因此我必须复制代码。

我知道听众是按照他们在网络上的顺序注册的.xml但这对我来说听起来有点模糊,太模糊了,无法依赖它。

你有提示我如何解决我的问题吗?


答案 1

所有 servlet 容器和 Java EE 容器都严格实现规范的这一部分。您可以依赖这样一个事实,即侦听器是按照您在 web.xml 中指定的顺序调用的。

您可以有一个应用程序级数据结构(HashMap),每个过滤器/侦听器在遇到来自请求的数据时都会更新该结构。这将使每个侦听器仅更新必要的内容。您可以将公共代码放在基本侦听器中,以便没有重复的代码。


答案 2

为什么这是模糊的?Web.xml中的顺序非常具体地是它们的调用顺序,这在Java EE规范中非常明确地说明。完全可以依靠它。


推荐