Tomcat Server处理一个http请求过程

假设来自客户端的请求为:

         http://localhost:8080/lizhx/lizhx_index.jsp

  1. 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得。
  2. Connector把该请求交给它的Service的Engine来处理,并等待Engine的回应。
  3. Engine获得请求localhost/lizhx/lizhx_index.jsp,匹配所有虚拟主机Host。
  4. Engine匹配到名为localhost的Host。
  5. localhost Host获得请求/lizhx/lizhx_index.jsp,匹配它所拥有的所有Context。
  6. Host匹配到路径为/lizhx的Context。
  7. path = “/lizhx”的Context获得请求为/lizhx_index.jsp,在它的mapping table中寻找对应的Servlet。
  8. Context匹配到URL PATTERN为*.jsp的Servlet,对就于JspServlet类。
  9. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的daGet或doPost方法。
  10. Context把执行完了之后的HttpServletResponse对象返回给Host。
  11. Host把HttpServletResponse对象返回给Engine。
  12. Engine把HttpServletResponse对象返回给Connector。
  13. Connector把HttpServletResponse对象返回给客户Browser。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

游戏服务器之多线程发送(中)

4、拷贝数据到会话的发送缓冲区 交换发送队列和添加队列,拷贝会话的发送队列的数据到会话的发送缓冲区 BOOL ExecSockDataMgr::CopyWait...

3173
来自专栏Java编程技术

线程不安全的SimpleDateFormat

SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDa...

724
来自专栏数据结构笔记

实战:简书爬取之多线程爬取(二)速度提升何止10倍

其次就是这样的代码往往会有很严重的竞争问题,需要很多的资源锁来保证线程安全,这样就拉低了程序执行的速度。

1082
来自专栏java 成神之路

Tomcat connector 实现原理

2797
来自专栏阮一峰的网络日志

JavaScript 运行机制详解:再谈Event Loop

一年前,我写了一篇《什么是 Event Loop?》,谈了我对Event Loop的理解。 上个月,我偶然看到了Philip Roberts的演讲《Help, ...

4007
来自专栏前端学习心得

JavaScript运行机制

1022
来自专栏积累沉淀

Java设计模式(十五)----观察者模式

观察者模式 一、定义 二、结构 具体案例 推模型和拉模型 三、Java提供的对观察者模式的支持 Observer接口 Observ...

2078
来自专栏大内老A

《WCF技术剖析(卷1)》(修订版)目录

第1章 WCF简介 (WCF Overview) 1.1 SOA的基本概念和设计思想 1.2 WCF是对现有Windows平台下分布式通信技术的整合 1.3 构...

1638
来自专栏我是攻城师

elasticsearch的查询流程分析

3326
来自专栏Golang语言社区

Go语言如何并发超时处理详解

大家都知道golang并没有在语言层次上提供超时操作,但可以通过一些小技巧实现超时。下面来一起看看吧,有需要的朋友们可以参考借鉴。 实现原理: 并发一个函数,等...

3436

扫码关注云+社区