案例 1:
请求资源路径:http://localhost:8080/web01/greeting?name=zs
- 浏览器通过 localhost:8080连接服务器;
- 服务器在 webapps目录下寻找web01目录,找到后进入web01目录内寻找WEB-INF目录,在进入WEB-INF目录内寻找web.xml文件;
- 再进入 web.xml文件中找到greeting,从而找到对应的servlet-name,再找到某个servlet的子类,并创建该类的实例对象;
- 再调用该对象的 service方法,并传入request和response两个对象参数,service方法会从request对象中获取到name=zs,然后执行service方法中的业务逻辑语句,并把结果写入到response中;
- 而后 server会从response中获得结果传送给浏览器显示出来。
案例 2:
请求资源路径:http://ip:port/appname/abc.html
Servlet 容器处理请求资源路径的步骤
step1
 依据 /appname 查找该应用对应的目录(比如查找 webapps 目录下面的是否存在 appname 目录)。
step2
 在找到的目录下面,找到 web.xml 文件,然后解析节点 <url-pattern> 的内容,判断是否与 /abc.html 相匹配。
匹配规则:
-  精确匹配: 即要求 <url-pattern>的内容与/abc.html完全一致。
-  通配符匹配: 使用 *代表任意的字符串。
 比如在<url-pattern>中使用:
 /*表示任意字符串
 /abc/*表示有/abc/的字符串
-  后缀匹配: 不能使用 /开头,要求*.任意的字符串。
 比如:
 *.do要求以.do结尾
 *.action要求以.action结尾
step3
 尝试查找 /abc.html 文件,如果找到,则返回该文件,找不到,则返回 404 状态码。