1.容器试图在web.xml中寻找匹配的请求URI。如果找到了,完整的请求URI(除去context路径)即servlet路径。
这时HttpServletRequest.getPathInfo()为null
2.使用/作为分隔符,将请求URI转化为目录树,并通过递归匹配web.xml中URL-PATTERN,获得最长的匹配路径.匹配部分即servlet path
其余为path info
3.如果请求URI的最后一个节点包含一个扩展名(如:.jsp),servlet容器会将它和处理这个种特定的扩展名servlet匹配.
这时, 完整的请求URI, 减去context path即servlet path, 并path info为null.
4.如果容器仍然不能匹配请求路径, 它会将请求forward到默认的servlet.如果没有默认的servlet, 它会发送一条说明服务器没有找到
指定文件未找到的错误信息(404)
http://www.example.com/app/hello/hi