
手写一个简单的Tomcat
文章平均质量分 91
以实践为过程,一步步创造出自己的Tomcat 框架,通过这个创作的过程,理解 Tomcat 的底层工作原理
LearnTech_123
这个作者很懒,什么都没留下…
展开
-
【学习笔记】手写 Tomcat 七
现在的情况是当 Tomcat 接收一个请求后,会先判断是请求的静态资源还是动态资源,如果是动态资源,还要继续判断请求的是哪个功能,然后调用相应的 Servlet 执行。这样有些缺点,当功能很多时,一个个判断请求的是哪个功能,效率不高,而且代码不够优雅,并且来一个请求就会创建一下 Servlet 对象,比较消耗资源,那如何解决呢?原创 2024-09-27 01:12:55 · 1534 阅读 · 0 评论 -
【学习笔记】手写 Tomcat 六
昨天使用了数据库连接池,我们了解了连接池的优点,那么也可以使用线程池来管理线程,java自带的线程池的参数有 核心线程数,最大线程数,线程活跃时间,时间单位,任务队列,线程工厂,拒绝策略。为了学习了解线程池,我们先手写一个简单的线程池,只需要做到核心线程可重复利用就行。原创 2024-09-26 00:51:59 · 1599 阅读 · 0 评论 -
【学习笔记】手写 Tomcat 五
我们把功能都写在了 Servlet,这样有几个缺点,一是不够低耦合 高内聚,二是不方便协同开发等。我们可以使用三层架构来解决这个问题。三层架构区分层次的目的是为了 “高内聚,低耦合”。原创 2024-09-23 02:05:34 · 1043 阅读 · 0 评论 -
【学习笔记】手写 Tomcat 四
在上次的基础上,我们需要解决一下 read 读取到 -1 导致报错的问题,我们需要知道,为什么会读取到 -1?什么情况下会读取到 -11. 客户端 Socket 关闭(Socket.close)2. 客户端关闭输出流,客户端在关流的时候,还多了一个往服务器写结束标记的动作,结束标记 -1 3. 读取超时抛出异常,java 中的 Socket 默认没有超时限制 4. 读取文件时,到了文件的末尾,表示没有数据可读,也会返回 -1原创 2024-09-22 01:45:13 · 1942 阅读 · 0 评论 -
【学习笔记】手写 Tomcat 三
响应动态资源不需要写文件名了,只需要写功能的名称即可。比如登录功能,可以定义名称为 doLogin原创 2024-09-12 23:58:52 · 1333 阅读 · 0 评论 -
【学习笔记】手写 Tomcat 二
在昨天的基础上,再进一步优化,能够响应HTML文件,图片等静态资源。原创 2024-09-11 21:45:27 · 1324 阅读 · 0 评论 -
【学习笔记】手写 Tomcat 一
现在的问题,只能访问一次服务端,服务端响应之后就关闭了。这显然不是我们想要的,服务器是当用户访问的时候都会响应数据。我们知道,服务端不是只为一个客户端服务的,所以,当新的用户发送连接后,就需要创建一个新的通信通道。原创 2024-09-10 18:33:02 · 960 阅读 · 0 评论 -
【学习笔记】手写 Tomcat -- 预备知识
I 是 Input,O 是Output,也就是输入输出流。当我们操作数据时,以内存为基准,把数据读取到内存中是输入,把数据从内存写入到硬盘是输出。原创 2024-09-09 21:58:43 · 1527 阅读 · 0 评论