tomcat服务器解析(三)---- Handler for Endpoint

本文深入探讨了Tomcat服务器如何将HTTP请求从SocketProcessor转移到开发人员编写的Servlet。当握手检查成功后,请求通过Handler.process进入Http11NioProtocol,然后由Http11NioProcessor处理,最终在Connector的service方法中执行实际的适配器操作。
摘要由CSDN通过智能技术生成
 前面的分析到,请求最终被封装成了一个SocketProcessor对象,放在Executors线程池中去执行。这些都还只是在tomcat内部的socket的处理层面上,那请求最终是如何被转到开发人员所写的servlet上的?

NioEndpoint.SocketProcessor所做的工作在私有方法doRun中
                if  (handshake == 0) {
                    SocketState state = SocketState.OPEN;
                     // Process the request from this socket
                     if  (status ==  null ) {
                        state = handler.process(ka, SocketStatus.OPEN_READ);
                    }  else  {
                        state = handler.process(ka, status);
                    }
通过代码可以看出,SocketProcessor中主要做一些握手检查和资源回收的工作,在 握手工作正常完成后,请求被转到handler.process进行处理。

前面在分析Connector时了解到,Connector默认使用的是 org.apache.coyote.http11.Http11NioProtocol  作为ProtocolHandler。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值