我的问题是基于对 webserver - servlet 容器如何交互的理解。因此,如果我的基本理解有误,请纠正我。
考虑进来一个请求:
www.bank.com/credit-cards
.一旦 Tomcat 服务器收到请求,它就会将其转发给
servlet Container
映射web.xml
到/credit-cards
上面传入 URI 的Servlet Container 执行实例化 servlet 的例程(如果这是第一个请求)。如果没有,它将
Thread
为此请求创建一个并将其交给 Servlet,由它处理生成响应。Tomcat 然后将响应返回给客户端浏览器。现在假设我有另一个请求
www.bank.com/accounts
。这由同一服务器中的不同应用程序提供服务。它不是同一个应用程序中的不同 servlet。现在如何保存 url 映射?服务器如何知道它应该将请求转发到哪个应用程序?服务器不保存任何描述符文件。应用程序 1 和应用程序 2 具有将传入 url 映射到 servlet 的 web.xml 文件。所有的 URL 映射和 servlet 是否都在服务器的某个地方注册以供查找?
我想每个应用程序都应该有自己的容器。也就是说,在上述情况下将有两个 servlet 容器。
这是一个常见的场景吗?我不知道任何使用 servlet/JSP 在服务器中保存多个应用程序的真实世界示例(如果两个请求来自相同或不同的应用程序,用户可能无法区分)