我想了解 Web 容器如何将传入请求映射到特定的 Web 应用程序(以及之后的 servlet)。
首先,我相信 Web 容器必须能够监听传入的 Http 请求(否则客户端将如何访问 Web 应用程序)。我相信这个假设是正确的。如果这不正确,那么请求将如何到达 Web 容器?
现在,假设我编写了一个 Web 应用程序(基于普通 servlet,即不使用 Spring MVC 等任何其他框架),创建 .war 文件,比如说firstwebapp.war
;并将其部署在 Apache Tomcat 中,并带有上下文根/firstapp
现在,客户端向已部署的 Web 应用程序发出请求,如下所示:
http://servername:port/firstapp
Web 容器如何处理这个请求?/firstapp 到部署为的 Web 应用程序的映射在哪里firstwebapp.war
?
在将控件传递给相应的 Web 应用程序之前,Web 容器是否首先“看到”传入的请求 URL?它基于什么标准能够映射到正确的.war?