多个虚拟服务器和 ServletContextListener?此信息与涉及多个虚拟服务器和 Webapp 的此线索中提出的问题(只需将 Webapp 连接到一个虚拟服务器吗?)有关。 是的,每个已部署 Webapp 的虚拟服务器会调用一次 ServletContextListener#contextInitialized。这是因为,从内部来说,容器会在每个已部署 Webapp 的虚拟服务器上创建一个 servlet 环境。要将 Webapp 部署到可用虚拟服务器的子集中,请使用 asadmin deploy 命令的 --virtualservers virtual_servers 选项。 每个 ServletContext 都有各自的会话管理器,用于管理上下文的会话状态。如果已将 Webapp 部署到多个虚拟服务器,则对 Webapp 的请求会根据请求中的主机名映射到特定的上下文实例。每个上下文都有各自的类加载器。 |