重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关tomcat NIO主要涉及的java类有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联公司从2013年创立,先为广昌等服务建站,广昌等地企业,进行企业商务咨询服务。为广昌企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
我们可以把 tomcat NIO 涉及的主要 java 类大致分为两种类型,一种类型是框架类,主要实现 NIO 的架构。另一种类型是数据处理类,实现读写的封装,类似于 Request 和 Response ,在这里我们主要介绍 tomcat NIO 涉及的框架类,下图展示了这些类:
顶层类是 Connector 类型,主要负责用来初始化具体应用协议的处理类 ProtocolHandler 。应用协议包括 http 协议,http/1.1 版本,http/1.0 版本。AJP 协议,AJP/1.3 版本。
AbstractEndpoint 类是属于 Http11NioProtocol 类,其主要用来处理底层 socket 的连接,对于 tomcat NIO 的实现类来说是 NioEndpoint 。
Poller 类属于 NioEndpoint ,主要监测 epoll 模型里注册原始 socket 上的读写事件是否发生。
NioSelectorPool 类属于 NioEndpoint ,当数据需要多次读写的时候,监测注册在原始 socket 上的读写事件是否发生。
NioBlockingSelector 类属于 NioSelectorPool 类,对于监测注册在原始 scoket 上的读写事件,delegate 给 NioBlockingSelector 处理。
BlockPoller 类属于 NioBlockingSelector 类,实现具体的监测读写事件的逻辑。
SocketWrapper 类封装了原始 socket ,提供封装的 socket 读写操作。
Http11Processor,该类由 ConnectionHandler 实例调用,会把接收到的 SocketWrapper 封装成 tomcat 的 Request 和 Response 对象。
CoyoteAdapter,该类负责把 Http11Processor 封装的 tomcat Request 和 Response 对象给转换成 HttpServletRequest/HttpServletResponse 对象,并完成对 servlet API 的调用。
ConnectionHandler 实例中有一个 Map 类型的对象,key 为SocketWrapper 类型,value 为 Http11Processor 类型。也就是说为每一个连接都分配了处理类 Http11Processor ,可以保存连接的状态信息。
关于“tomcat NIO主要涉及的java类有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。