• Tomcat笔记


    Tomcat笔记

    Catalina - org.apache.catalina.startup.Catalina    
        Server - org.apache.catalina.core.StandardServer
            Service - org.apache.catalina.core.StandardService
                Connector - org.apache.catalina.connector.Connector                                                    
                    +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
                    |此部分根据不同请求协议实现有所不同,以下为Nio方式实现Http1.1协议
                    |ProtocolHandler - org.apache.coyote.http11.Http11NioProtocol                                                                                                   
                    |   AbstractEndpoint - org.apache.tomcat.util.net.NioEndpoint                                                                                                   
                    |       Acceptor - org.apache.tomcat.util.net.Acceptor - 接收socket请求                                                                                           
                    |       NioEndpoint.Poller - org.apache.tomcat.util.net.NioEndpoint.Poller - NioSelector                                                                        
                    |   AbstractEndpoint.Handler - org.apache.coyote.AbstractProtocol.ConnectionHandler - NioHandler - 调用Processor.process处理socket请求                                    
                    |   Processor - org.apache.coyote.http11.Http11Processor - 从socket中获取请求数据并封装为Servlet请求、调用Adapter.service处理请求                                    
                    +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
                    Adapter - org.apache.catalina.connector.CoyoteAdapter - 根据Servlet请求数据(url,method)匹配对应的Host、Context、Wrapper,并调用Engine责任链头开始处理数据
                Engine - org.apache.catalina.core.StandardEngine
                    Pipeline - org.apache.catalina.core.StandardPipeline
                        Valve - org.apache.catalina.core.StandardEngineValve - 默认(最后一步)处理 - 调用Host的责任链头处理
                    Host - org.apache.catalina.core.StandardHost
                        Pipeline - org.apache.catalina.core.StandardPipeline
                            Valve - org.apache.catalina.core.StandardHostValve - 默认(最后一步)处理 - 调用Context的责任链头处理
                        Context - org.apache.catalina.core.StandardContext
                            Pipeline - org.apache.catalina.core.StandardPipeline
                                Valve - org.apache.catalina.core.StandardContextValve - 默认(最后一步)处理 - 调用Wrapper的责任链头处理
                            Wrapper - org.apache.catalina.core.StandardWrapper  
                                Pipeline - org.apache.catalina.core.StandardPipeline 
                                    Valve - org.apache.catalina.core.StandardWrapperValve - 默认(最后一步)处理 - 找到Servlet和FilterChain,调用FilterChain.doFilter
                                FilterChain - org.apache.catalina.core.ApplicationFilterChain - 依次调用Filter.doFilter。如果结束,调用Servlet.service
                                Servlet - javax.servlet.Servlet
    
  • 相关阅读:
    你必须要知道的架构知识~第一章 什么是项目架构
    Linq下的distinct()比SQLServer下的distinct更强大,更自由,呵呵
    你必须要知道的架构知识~第二章 代码是否面向对象,要看你的继承怎么用
    hdu 4500 小Q系列故事——屌丝的逆袭
    [置顶] Android九环刀之RatingBar之评委请亮分
    DNS 解析出错导致 MySQL 无法连接
    把iis服务关掉,将Session值存到数据库中继续运行
    回顾过去。。展望未来
    Android巴士转发
    linux网络编程之socket(十二):select函数的并发限制和 poll 函数应用举例
  • 原文地址:https://www.cnblogs.com/jimmyfan/p/11882745.html
Copyright © 2020-2023  润新知