案例 1:

请求资源路径:http://localhost:8080/web01/greeting?name=zs

  1. 浏览器通过 localhost:8080 连接服务器;
  2. 服务器在 webapps 目录下寻找 web01 目录,找到后进入web01 目录内寻找 WEB-INF 目录,在进入 WEB-INF 目录内寻找 web.xml 文件;
  3. 再进入 web.xml 文件中找到 greeting,从而找到对应的 servlet-name,再找到某个 servlet 的子类,并创建该类的实例对象;
  4. 再调用该对象的 service 方法,并传入 requestresponse 两个对象参数,service 方法会从 request 对象中获取到 name=zs,然后执行 service 方法中的业务逻辑语句,并把结果写入到 response 中;
  5. 而后 server 会从response 中获得结果传送给浏览器显示出来。

案例 2:

请求资源路径:http://ip:port/appname/abc.html

Servlet 容器处理请求资源路径的步骤

step1
依据 /appname 查找该应用对应的目录(比如查找 webapps 目录下面的是否存在 appname 目录)。

step2
在找到的目录下面,找到 web.xml 文件,然后解析节点 <url-pattern> 的内容,判断是否与 /abc.html 相匹配。

匹配规则:

  1. 精确匹配: 即要求 <url-pattern> 的内容与 /abc.html 完全一致。

  2. 通配符匹配: 使用*代表任意的字符串。
    比如在 <url-pattern> 中使用:
    /* 表示任意字符串
    /abc/* 表示有 /abc/ 的字符串

  3. 后缀匹配: 不能使用 / 开头,要求*.任意的字符串
    比如:
    *.do 要求以.do 结尾
    *.action 要求以.action 结尾

step3
尝试查找 /abc.html 文件,如果找到,则返回该文件,找不到,则返回 404 状态码。

解析浏览器访问服务器 Servlet 应用程序的交互过程(Servlet 容器如何处理请求资源路径)相关推荐

  1. Servlet容器如何处理请求资源路径

    1.. 什么是请求资源路径 在地址栏中输入的请求地址中,端口号之后的部分都是请求资源路径.紧跟端口号的是部署到Web服务器上的应用名(appName),紧跟应用名的则是具体的应用内的组件路径. 2. ...

  2. 单文件浏览器_图文并茂深度解析浏览器渲染原理,包看懂超值得收藏

    在我们面试过程中,面试官经常会问到这么一个问题,那就是从在浏览器地址栏中输入URL到页面显示,浏览器到底发生了什么?这个问题看起来是老生常谈,但是这个问题回答的好坏,确实可以很好的反映出面试者知识的广 ...

  3. 【愚公系列】2022年01月 Java教学课程 71-自建HTTP服务器解析浏览器请求案例

    文章目录 一.自建HTTP服务器解析浏览器请求案例 1.环境搭建 2.获取请求信息并解析 3.给浏览器响应数据 4.代码优化 一.自建HTTP服务器解析浏览器请求案例 1.环境搭建 实现步骤 编写Ht ...

  4. java服务器端开发-servlet:202、Servlet执行过程介绍:get请求与post请求、编码相关等

    声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!! 文章目录 4.get请求与post请求 (1)哪一些情况下,浏览器会发送get请求? (2)哪一些情况下,浏览 ...

  5. 快递收件寄件JAVA小程序技术描述_解析“微快递”小程序的交互流程

    小程序凭借用完即走.无需独立下载等优点成为了饱受用户青睐的一种产品形式,而"微快递"更是人们在选择下单寄件的主要小程序之一.那么这个小程序在交互上有什么特点呢.它的流程又是怎样的呢 ...

  6. WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)

    WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 目录 WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 概述 HTTP解析 HTTP请求头 HTTP响应头 H ...

  7. java web——servlet+jsp实现前后台交互

    大学生涯终于结束,在公司学习了一段时间的java web方面的知识,结合自己之前的一些理解,想通过几篇文章来对我所接触到的java技术进行梳理与总结,也希望能给大家一些参考,由于作者水平有限,难免存在 ...

  8. java基于http协议客户端与服务器端的交互,通俗易懂客户端与服务器端交互原理(HTTP数据请求与HTTP响应,包括Servlet部分...

    经 常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来 连 Tomcat 容器 和 S ...

  9. HTTP协议, 浏览器访问服务器, HTTP响应, HTTP请求, 访问百度

    浏览器访问服务器的过程 1/用户输入网址 2/浏览器请求DNS服务器,获取域名对应的IP地址(电脑连上网之后会被自动分配一个DNS服务器,域名跟ip是以键值对的形式存在DNS服务器,会按一定规则更新, ...

最新文章

  1. Linux的文件管理
  2. androidstudio返回之前界面_charles 如何修改服务器返回内容 - Breakpoints
  3. Spring MVC报错:The request sent by the client was syntactically incorrect ()
  4. cjson 对象是json数组型结构体_C语言 - cJSON解析特定格式 含有数组array类型的数据...
  5. MongoDB中MapReduce介绍与使用
  6. MyBatis Plus 导入IdType失败
  7. LoadRunner函数中文翻译
  8. 计算机基础(九):C语言基础知识小结
  9. Mendeley简单操作
  10. Appium基础 — APPium安装(二)
  11. 基于51单片机的电子秤设计
  12. CMD 命令行实现 Windows 下复制文件到文件夹下的所有文件夹
  13. 零基础CSS入门教程(24)–内联/内部/外部样式
  14. 不再东寻西找,常见数据库分页方法都在这里了
  15. 安装C4D步骤 附加一大波C4D序列号
  16. 最小二乘法 几何意义
  17. 无线信道的选择性衰落
  18. linux删除 grub rescue,删除Ubuntu后 开机grub rescue无法进入BIOS
  19. 你不知道的JavaScript APIs
  20. 英国留学生论文introduction部分怎么写比较好?

热门文章

  1. jdk只有一个java进程_JDK 10:从Java访问Java应用程序的进程ID
  2. lineseparator_首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串
  3. java开发五年面试经验_只有经验丰富的开发人员才能教您有关Java的5件事
  4. slf4j 记录日志文件_教程:正确的SLF4J日志记录用法以及如何检查它
  5. javaio流层次结构_流的多层次分组
  6. 博科光纤交换机java_带有光纤的可扩展,健壮和标准的Java Web服务
  7. maven和docker_Java EE,Docker和Maven(技术提示#89)
  8. lambda ::表达式_Lambda表达式和流API:基本示例
  9. 数据结构栈的知识_数据知识栈
  10. Apache Ant 1.9.13和1.10.5发布–支持Java 11单文件源程序