Web服务器如何确定由哪个servlet处理请求

1.准备过程
在eclipse中创建一个web项目,webContent文件夹下随便创建一个jsp或是html文件,然后再去创建两个servlet。再去其中一个servlet在web.xml中的配置不做改动,另一个则把url修改为/*

Web服务器如何确定由哪个servlet处理请求

web.xml
Web服务器如何确定由哪个servlet处理请求

两个servlet
Web服务器如何确定由哪个servlet处理请求
Web服务器如何确定由哪个servlet处理请求
2.接下来就是试验的时候了。
把工程加进tomcat,然后启动tomcat。打开浏览器输入http://127.0.0.1/testServlet,此时按回车键会进入index.jsp页面,然后我们去看控制台输出如下
Web服务器如何确定由哪个servlet处理请求
可以看到构造方法和doGet方法都被调用了。我们可以接着多刷新几次,控制台这时只输出TestServlet2.///doget而不再输出TestServlet2说明仅第一次访问时会实例化对应的servlet。在web.xml中TestServlet2的url-pattern被设置为/*,意思是在不指定访问哪个servlet时都会去访问servlet2。
接下来在浏览器中输入 http://127.0.0.1/testServlet/TestServlet并敲击回车,此时控制台输出如下
Web服务器如何确定由哪个servlet处理请求
此时访问的就是第一个servlet,而不是第二个servlet。

总结
web服务器如何确定由哪个servlet处理请求先看url,然后跟url-pattern匹配进而找到servlet的名字,再找到相对应的类
Web服务器如何确定由哪个servlet处理请求