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

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

在这里插入图片描述

web.xml
在这里插入图片描述

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

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

发布了74 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/naruhina/article/details/89789879