03 站点访问步骤

servlet执行步骤:

当我们访问 http://localhost/MyServlet/HelloServlet

http:// --- http协议

1)本地hosts文件查询域名和ip的映射
2)找不到,联网到运营商的DNS服务起器找域名和ip的映射</br>

8080 --- 端口
tomcat :80 (默认是8080,已改)
MyServlet :站点下的web应用名称
HelloServlet : 资源名称。

接着:

1)在MyServlet项目应用下的web.xml文件中查找是否存在匹配的url-pattern(也就是上面的“HelloServlet”)
2)匹配到对应的url-pattern之后,取出当前映射信息中的servlet-name的名称,然后在web.xml内部名称中搜索是否存在一个相同名称的servlet-name的servlet配置信息。
3)找到对应的servlet配置信息之后,取出当前配置信息的servlet-class类名
4)调用映射类的方法并返回信息到浏览器

映射:

Paste_Image.png

匹配:
精准匹配:

url-pattern 浏览器访问
/hello http://localhost:8080/day09/hello
/itcast/hello http://localhost:8080/day09/itcast/hello

模糊:

url-pattern 浏览器访问
/* http://localhost:8080/day09/任意路径
/itcast/* http://localhost:8080/day09/itcast/任意路径
*.后缀名(.html .任意) http://localhost:8080/day09/任意路径.后缀名

注意:
1)要么以斜杠开头,要么*号开头
非法的url-pattern: /itcast/*.html
2)当多个url-pattern同时被匹配的情况下
精准匹配>模糊匹配
同级匹配下越接近的优先级越高(如/itcast/* > /*)
模糊匹配下*.后缀名优先级越低

如:

Paste_Image.png

随便一个路径可以匹配/*但不能匹配/HelloServlet,所以显示"second"


若是指定一个路径,虽然二者都可以匹配到,但是精准匹配优先级更高,所以显示“first”

Paste_Image.png

缺省路径:
一个路径在tomcat服务器的执行过程:
1)搜索myFirstServlet下面的web.xml文件信息。搜索是否存在匹配的<url-pattern>
2)匹配到对应的url-pattern,执行对应的Servlet程序。
3)如果没有匹配的url-pattern,就把这个请求交给tomcat服务器的DefaultServlet处理。
4)DefaultServlet会在myFirstServlet的根目录下搜索是否存在一个名称叫hello.html的文件。
5)如果找到此文件, 那么DefaultServlet读取该文件内容返回给用户。
6)如果找不到此文件, 那么就给用户返回一个404状态码+404错误页面。
结论: 先找动态网页,再找静态网页。

Paste_Image.png
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,973评论 6 342
  • 本文包括: Servlet简介关于Servlet的一些类 Servlet生命周期 ServletConfig获得初...
    廖少少阅读 3,906评论 1 67
  • Servlet学习的大纲 servlet概念及相关接口简介 servet 执行过程 servlet映射路径 缺省s...
    奋斗的老王阅读 1,213评论 1 51
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399