请求由tomcat转到servlet的临界点

 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>StandardWrapperValve--->Servlet>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 2    请求转出,都由valve来调用servlet的service方法
 3    [1] 直接转出
 4    StandardWrapperValve
 5    void java.org.apache.catalina.core.StandardWrapperValve.invoke(Request request, Response response) throws IOException, ServletException
 6    --->filterChain.doFilter
 7    ------------>servlet.service(request, response);
 8
 9    [2] 内部循环再转出
10    -------->((AsyncContextImpl)request.getAsyncContext()).doInternalDispatch();
11           ----> void java.org.apache.catalina.core.AsyncContextImpl.doInternalDispatch() throws ServletException, IOException
12                ---->
13                         Runnable runnable = dispatch;
14                         dispatch = null;
15                         runnable.run();
16
17                         ------------->
18                          void java.org.apache.catalina.core.AsyncContextImpl.dispatch(ServletContext context, String path)
19                                 ---->applicationDispatcher.dispatch(servletRequest, servletResponse);
20
21
22                                 AsyncDispatcher=applicationDispatcher
23
24                                 final class ApplicationDispatcher implements AsyncDispatcher, RequestDispatcher
25
26                                 ------>final class ApplicationDispatcher implements AsyncDispatcher, RequestDispatcher
27                                         ---------> void java.org.apache.catalina.core.ApplicationDispatcher.doDispatch(ServletRequest request, ServletResponse response) throws ServletException, IOException
28                                                    -------------> void java.org.apache.catalina.core.ApplicationDispatcher.doDispatch(ServletRequest request, ServletResponse response) throws ServletException, IOException
29                                                                 //Servlet Service Method is called by the FilterChain
30                                                                   ----------->void java.org.apache.catalina.core.ApplicationFilterChain.doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException
31                                                                      --> void java.org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException
32                                                                             ------------>servlet.service(request, response);
33     最终都是由servlet.service(request, response);
34 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>StandardWrapperValve--->Servlet>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
35
36    
时间: 2024-08-29 18:20:56

请求由tomcat转到servlet的临界点的相关文章

Tomcat如何与Servlet对象进行交互

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品.下面我们描述一下Tomcat与Servlet是如何工作的,首先看下面的时序图. 1.1.Web客户向Servlet容器(Tomcat)

构建Apache Tomcat 6.0 Servlet/JSP 容器

构建Apache Tomcat 6.0 Servlet/JSP 容器 这个子项目包含了Tomcat 6.0的源代码,一个实现了Java Community Process http://www.jcp.org/ 的Servlet2.5和JSP2.1标准的容器. 注意:如果你只需要运行Tomcat,没有必要去构建它,你可以非常方便的下载一个二进制发布包.它是跨平台的.阅读RUNNING.txt文件,它介绍了怎样去运行它. 请按以下步骤来从源代码构建一个Tomcat的二进制发布版本: 下载并安装JD

Tomcat系列之Apache负载均衡请求至Tomcat及DeltaManager的使用

Tomcat系列之Apache负载均衡请求至Tomcat及DeltaManager的使用

servlet请求转发到另一个servlet

servlet请求转发到另一个servlet,并传递数据 . 1.通过request.setAttribute("key",value)给request加信息. 2.通过request.getRequestDispather(目标servlet).forward(request,response) 传递制定servlet. 3.在另一个servlet中通过request.getAttribute("key")来获取附加信息的值.

JDK - Tomcat - Eclipse - JSP - Servlet 配置运行全攻略

花了将近两个月的时间,从 JDK 开始一步一步摸索,历经千辛万苦,终于让第一个 Servlet 运行起来了,创建第一个 Servlet  程序确实要比创建第一个 Asp.net 程序困难多了,但是不要紧,趁着我还没忘先记下来,下回你再来的时候就轻松多了! 1.下载并安装JDK5.0 或者 JDK1.4.2 不要对版本号产生什么疑问,据我的理解,JDK5.0 也就是JDK1.5 ,是 JDK1.4.2 的重要升级,里面加了许多新的语言特性,为什么叫 5.0 而不叫1.5 ,我想可能是出于商业上的考

关于 tomcat nio connector, servlet 3.0 async, spring mvc async 的关系

tomcat 的 org.apache.coyote.http11.Http11NioProtocol Connector 是一个使用 Java NIO 实现的异步 accept 请求的 connector 它的作用是不需要为每个请求建立一个线程, 而是使用固定的accept线程 accept 多个请求, 然后排队处理. 大概的意思是使用固定的 acceptThread 来 accept n 个请求, 然后将请求入队, 最后使用固定的 requestProcessingThread 来处理业务逻

谈谈渲染,玩玩nginx——前后端分离,转发请求到Tomcat的尝试

一.谈谈"渲染" 相信好多人都挺听过"渲染"这个词,但不清楚它是什么意思?前端开发以为这是后端的活儿,后端开发以为是前端的事儿,推着推着就不了了之.其实渲染很简单,不说概念,直接举例: 1. 后端渲染:以JSP为例,可以分成三步 a.编写标签或Java代码(可以称之为模板) b.在JSP编译阶段被转换成Servlet编译为Servlet Class c.执行编译后的代码,将响应(模板执行结果)返回给页面 优势:减少前端工作,前端只需要设计纯页面,其他的都由后端来做:

Tomcat配置文件之servlet.xml中选项介绍

Servlet.xml 分为以下元素: server, service, Connector ( 表示客户端和service之间的连接), Engine ( 表示指定service 中的请求处理机,接收和处理来自Connector的请求), Context ( 表示一个web 应用程序,通常为WAR 文件,关于WAR 的具体信息见servlet 规范), host ( 表示一个虚拟主机 ), Logger ( 表示日志,调试和错误信息), Realm ( 表示存放用户名,密码及role 的数据库

apache反向代理负载均衡请求至tomcat

实验环境 RHEL6.6-X86-64 软件 jdk-8u45-linux-x64.rpm apache-tomcat-8.0.23.tar.gz http-2.4.10 主机一:IP1: 192.168.1.10    IP2: 192.168.46.130  安装apache 主机二:192.168.46.128  TomcatA 主机三:192.168.46.129  TomcatB 拓扑图: 进入主机192.168.1.128 步骤一:安装JDK # rpm –ivh jdk-8u45-