`
douglas_lhs
  • 浏览: 39682 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

tomcat 接受请求顺序

阅读更多
来自客户的请求为:
http://localhost:8080/wsota/wsota_index.jsp


1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
13)Connector把HttpServletResponse对象返回给客户browser

分享到:
评论

相关推荐

    Tomcat请求处理UML序列图

    ### Tomcat请求处理UML序列图解析 #### 一、概述 Apache Tomcat是一个开源的Servlet容器,主要用于执行Java Servlet和展示JSP页面。在Tomcat中,HTTP请求的处理流程是一个复杂的过程,涉及到多个组件之间的交互。...

    关于\"form表单提交数据编码方式和tomcat接受数据解码方式的思考\"一文的纠错

    本文将纠正“关于'form表单提交数据编码方式和tomcat接受数据解码方式的思考'”一文中可能存在的错误,并深入探讨相关知识点。 首先,表单数据的编码方式主要取决于`<form>`标签的`enctype`属性。默认情况下,如果...

    tomcat 源码分析系列文档

    5. "tomcat加载类的顺序.doc":详细说明了Tomcat加载类的具体步骤和顺序,这对于理解和调试类加载问题至关重要。 6. "Tomcat源码研究.pdf":提供了一个全面的源码分析概览,可能包括了Tomcat的主要组件、设计模式...

    S19-再看tomcat架构与请求处理流程1

    本文将深入探讨 Tomcat 的架构和请求处理流程。 首先,Tomcat 作为一个 HTTP 服务器,其核心功能之一是通过 Socket 进行网络通信,遵循 TCP/IP 协议。Socket 提供了应用程序之间进行低级别网络通信的接口,使得 ...

    Tomcat源码apache-tomcat-8.5.47-src.zip

    7. ** valves**:Valves是Tomcat处理请求的管道中的组件,它们按照一定的顺序处理每个请求。开发者可以通过自定义Valve来插入特定的行为。 8. ** Manager**:用于管理Web应用程序的生命周期,如部署、卸载和更新。`...

    tomcat的工作原理

    然而,无论版本如何变化,Tomcat的核心理念——高效、可靠地处理Web请求——始终未变。 四、示例与实践 为了更好地理解Tomcat的工作原理,我们可以通过一个简单的Web服务器和servlet容器的实现来深入探讨。例如,...

    how tomcat works

    请求处理流水线(Pipeline)是Tomcat中的一个核心概念,它定义了请求处理的顺序,通过一系列的Valve(阀门)对请求进行拦截和处理,这类似于过滤器(Filter)的作用。这些Valve被组织成一个链式结构,每个Valve可以...

    《深入剖析 Tomcat》PDF版本下载.txt

    当启动Tomcat时,其核心组件会按照一定的顺序初始化并准备就绪: 1. **Bootstrap ClassLoader**加载Bootstrap类库; 2. **Catalina ClassLoader**加载Tomcat核心类库; 3. **Common ClassLoader**加载Tomcat公共类库...

    TOMCAT源码分析(启动框架)

    6. **启动Connector**:Connector开始接受并处理请求。请求被分发到对应的Engine,然后依次经过Host和Context,最终到达Wrapper,执行Servlet的`service()`方法。 7. **处理请求**:Wrapper根据请求类型选择合适的...

    Tomcat通俗讲解

    - **port**:指定一个端口,用于接收关闭Tomcat的请求。 - **shutdown**:指定关闭Tomcat的命令字符串。 - **Service**:代表一组相互关联的服务组件。 - **name**:定义服务的名称。 - **Connector**:定义...

    tomcat的内部原理

    此外,每个Web App有自己的部署配置文件web.xml,用于定义Servlet和Servlet映射,加载顺序为先加载全局$CATALINA_HOME/conf/web.xml,再加载应用级$WEBAPP_HOME/WEB-INF/web.xml。 了解这些核心概念后,我们可以更...

    Tomcat源码研究.pdf

    例如,我们可以通过生命周期方法来掌握Catalina是如何初始化并启动Tomcat的,以及在关闭服务器时它是如何顺序地销毁各个组件的。生命周期方法通常包括init(), start(), stop(), destroy()等,通过这些方法,可以对...

    tomcat 学习与分析总结资料

    理解Tomcat的工作流程,包括请求的接收、解析、调度、处理及响应过程,有助于我们解决性能瓶颈和调试问题。 3. **Server结构分析** 在Tomcat的配置文件`server.xml`中,`Server`元素是最顶级的容器,包含多个`...

    tomcat-4.1.40-src

    7. **扩展性**:Tomcat 4.1.40设计时就已经考虑了插件式架构,可以通过编写自定义Valves(管道组件)来扩展其功能,Valves可以按顺序处理请求和响应。 通过研究Tomcat 4.1.40的源码,开发者可以了解到Web服务器的...

    tomcat-7.0.56 接口说明文档

    Tomcat会按照特定顺序启动和停止Servlet,以及初始化和销毁相关的资源。开发者可以通过实现`javax.servlet.ServletContextListener`来监听这些生命周期事件,以便在启动时进行初始化操作,关闭时进行清理工作。 ...

    nginx+tomcat负载均衡实现

    1. **轮询(round-robin)**:每个请求按顺序分配给不同的服务器,如果服务器队列循环一圈,则重新开始。这是最基础的策略。 2. **权重轮询(weighted round-robin)**:根据服务器的处理能力分配不同的权重,能力...

    Tomcat IIS HowTo将Tomcat装入IIS全攻略

    - 确保ISAPI筛选器的顺序正确,以便在请求处理时能够被正确调用。 5. **测试集成结果** - 完成上述配置后,重启IIS以确保所有更改生效。 - 访问一个部署在Tomcat上的Web应用,通过IIS的前端地址(如...

    Tomcat帮助文档全集

    此外,对于使用Tomcat进行JSP和Servlet开发的人员,这份文档会解释如何创建动态网页,如何处理HTTP请求和响应,以及如何利用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来简化开发。...

    《深入剖析Tomcat》的光盘源码

    4. **Pipeline与Valve**:Pipeline是Tomcat中处理请求的链式结构,而Valve则是链上的一个个处理节点。每个Valve执行特定的任务,如认证、日志记录、会话管理等。通过Valve,我们可以自定义处理流程。 5. **Context...

    apache-tomcat-9.0.34-src.zip

    7. **common`, `server`, `shared`:这些是类库目录,分别对应于Tomcat的全局、服务器特定和共享类库,允许自定义配置加载顺序。 8. **build**:构建相关的文件和脚本,如Ant构建脚本,用于编译和打包Tomcat。 9. **...

Global site tag (gtag.js) - Google Analytics