Tomcat
为了解耦,Http服务器不直接调用Servlet,而是把请求交给Servlet容器来处理
当客户请求某个资源时,HTTF服务器会用一个servletRequest对象被客户的请求信息封装起来,然后调用servlet容器的service方法,servlet容器拿到请求后,根据请求的URL和Servlet的映射关系,找到相应的Servlet,如果Servlet还没有被加载,就用反射机制创建这个servlet,并调用servlet的init方法来完成初始化,接着调用Servlet的service方法来处理请求,把servletResponse对象返回给HTTF服务器,HTTF服务器会把响应发送给客户端。
1 Tomcat 整体架构
- 连接器,处理Socket连接,负责网络字节流Request和Response对象的转化
- 容器 加载和管理Servlet,以及具体处理Request对象的转化
1.1 连接器
-
Coyote 主要处理网络通信
应用层:HTTP(默认) AJP HTTP2
传输层:8.5 以后移出BIO 这种IO模型 使用NIO(默认) NIO2 APR
-
Catalina 负责进一步封装request response
一个容器可以对应多个连接器 组成Service对外提供服务
连接器组件