深入学习Tomcat(学习笔记)
文章平均质量分 88
深入学习Tomcat(学习笔记)
程序员zhi路
Java开发工程师
展开
-
08丨Tomcat的“高层们”都负责做什么
使用过 Tomcat 的同学都知道,我们可以通过 Tomcat 的 /bin 目录下的脚本 startup.sh。3.Catalina 是一个启动类,它通过解析 server.xml、创建相应的组件,并调用 Server 的。Service,因此它还需要管理 Service 的生命周期,也就是说在启动时调用 Service 组件的。这是因为 Tomcat 支持热部署,当 Web 应用的部署。Service 组件的具体实现类是 StandardService,我们先来看看它的定义以及关键的成员变。原创 2023-05-01 18:19:54 · 85 阅读 · 0 评论 -
07丨Tomcat如何实现一键式启停
键式启动,具体组件在实现 initInternal() 方法时,又会调用它的子组件的 init() 方法。父组件的 start() 方法里也需要调用子组件的 start() 方法,因此调用者可以无差别的调用各。Web 应用,创建相应的 Context 容器,如果将来需要增加新的逻辑,直接修改 start() 方。理所当然,在父组件的 init() 方法里需要创建子组件并调用子组件的 init() 方法。我们注意到,组件的 init() 和 start() 调用是由它的父组件的状态变化触发的,上层组件的。原创 2023-05-01 13:23:29 · 202 阅读 · 0 评论 -
06丨Tomcat系统架构:多层容器的设计
Context 确定后,Mapper 再根据 web.xml 中配置的 Servlet 映射路径来找到具体的Wrapper 和 Servlet。看到这里,我想你应该已经了解了什么是容器,以及 Tomcat 如何通过一层一层的父子容器找到某个 Servlet 来处理请求。需要注意的是,并不是说只有 Servlet 才会去处理请求,实际上这个查找路径上的父子容器都会对请求做一些处理。我在上一期说过,连接器中的。原创 2023-04-22 15:07:52 · 130 阅读 · 0 评论 -
05丨Tomcat系统架构: 连接器是如何设计的?
法,传入的是 Tomcat Request 对象,CoyoteAdapter 负责将 Tomcat Request 转成。Tomcat Request 类。如果说 EndPoint 是用来实现 TCP/IP 协议的,那么 Processor 用来实现 HTTP 协议,议,Processor 通过解析生成 Request 对象后,会调用 Adapter 的 Service 方法。但是整体的处理逻辑是不变的,EndPoint 负责提供字节流给 Processor,Processor 负责。原创 2023-04-22 00:24:52 · 262 阅读 · 0 评论 -
04丨手工创建和运行一个Servlet
Java 程序员,我们可能已经习惯了使用 IDE 和 Web 框架进行开发,IDE 帮我们做了编译、打包的工作,而 Spring 框架在背后帮我们实现了 Servlet 接口,并把 Servlet 注册到了 Web 容器,这样我们可能很少有机会接触到一些底层本质的东西,比如怎么开发一个Servlet?打开 Tomcat 的日志目录,也就是 Tomcat 安装目录下的 logs 目录。上下载,根据你的操作系统下载相应的版本,这里我使用的是 Mac 系统,下载完成后直接解压,解压后的目录结构如下。原创 2023-04-21 00:00:09 · 378 阅读 · 0 评论 -
03丨Servlet规范和Servlet容器
通过学习我们知道,浏览器发给服务端的是一个 HTTP 格式的请求,HTTP 服务器收到这个请求后,需要调用服务端程序来处理,所谓的服务端程序就是你写的 Java类,一般来说不同的请求需要由不同的 Java 类来处理。一般来说,我们是以 Web 应用程序的方式来部署 Servlet 的,而根据 Servlet 规范,Web 应用程序有一定的目录结构,在这个目录下分别放置了 Servlet 的类文件、配置文件以及静态资源,Servlet 容器通过读取配置文件,就能找到并加载 Servlet。原创 2023-04-20 23:47:27 · 142 阅读 · 0 评论 -
02丨HTTP协议讲解
具体工作过程是这样的:服务器在创建 Session 的同时,会为该 Session 生成唯一的Session ID,当浏览器再次发送请求的时候,会将这个 Session ID 带上,服务器接受到请求之后就会依据 Session ID 找到相应的 Session,找到 Session 后,就可以在 Session 中获取或者添加内容了。需要保存请求的状态,也就是不需要保存session,没有session的好处是带来了服务端良好的可缩性,方便failover,请求被LB转到不同的server实例上没有差别。原创 2023-04-20 14:55:54 · 94 阅读 · 0 评论 -
01丨Web容器学习路径
Java 的基础知识包括 Java 基本语法、面向对象设计的概念(封装、继承、多态、接口、抽象类等)、Java 集合的使用、Java I/O 体系、异常处理、基本的多线程并发编程(包括线程同步、原子类、线程池、并发容器的使用和原理)、Java 网络编程(I/O 模型 BIO、NIO、AIO 的原理和相应的 Java API)、Java 注解以及 Java 反射的原理等。容器,是完整的 Java EE 应用服务器。设计并实现类,包括定义类与类之间的关系,以及实现类的方法,方法对数据的操作就是具体的业务逻辑。原创 2023-04-19 23:57:03 · 152 阅读 · 0 评论