【How Tomcat works】解析Tomcat

how tomcat works中文版.pdf百度网盘下载地址 立即下载

最近在看 容器的东西,看到了jetty,但是没找到jetty的书籍和资料,就拿Tomcat的资料来学习下。发现实例程序有点问题,特意记录一下。

第一个实例使用 浏览器访问失败了,但是测试 404是可以的,后来改了下 response的代码,特意加上 响应头,就可以了,具体的原因,还待研究:

package ex01.pyrmont;

import java.io.OutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.File;

public class Response {

	private static final int BUFFER_SIZE = 1024;
	Request request;
	OutputStream output;

	public Response(OutputStream output) {
		this.output = output;
	}

	public void setRequest(Request request) {
		this.request = request;
	}

	public void sendStaticResource() throws IOException {
		byte[] bytes = new byte[BUFFER_SIZE];
		FileInputStream fis = null;
		try {
			File file = new File(HttpServer.WEB_ROOT, request.getUri());
			if (file.exists()) {
				fis = new FileInputStream(file);
				int ch = fis.read(bytes, 0, BUFFER_SIZE);
				String response = "HTTP/1.1 200 OK\r\n" + "Content-Type: text/html\r\n" + "\r\n";
				output.write(response.getBytes());
				while (ch != -1) {
					output.write(bytes, 0, ch);
					ch = fis.read(bytes, 0, BUFFER_SIZE);
				}
			} else {
				// file not found
				String errorMessage = "HTTP/1.1 404 File Not Found\r\n" + "Content-Type: text/html\r\n"
						+ "Content-Length: 23\r\n" + "\r\n" + "<h1>File Not Found</h1>";
				output.write(errorMessage.getBytes());
			}
		} catch (Exception e) {
			System.out.println(e.toString());
		} finally {
			if (fis != null)
				fis.close();
		}
	}
}

效果:(记得把 webroot 的目录加载进来,因为要加载 images/logo.gif)

第二个例子:

 

 

 

How Tomcat Works以及案例的项目源码 tomcat工作原理,看完这本书,你可以对tomcat有更加深入的了解,附带所有项目代码,可边看边运行案例调试 立即下载

相关推荐

How Tomcat works(PDF)

How Tomcat works(PDF),不可用于商业用途,如有版权问题,请联系删除!

解决javaweb项目使用Tomcat服务在网页中的某些页面中的图片无法显示问题。

最近写了一个web项目,但在浏览器中测试,发现某些页面中的图片无法显示。 原因是在加载页面时一些img标签或者css中的background-image请求了一些含有中文的图片。于是这个页面会自动向服务端发送请求获取资源,但是这个过程不会体现到地址栏的,是在后台操作的。例如我请求了一个index.html页面但是页面中有一个<img src="img/测试图片.png">标签。通过f...

WistWill的博客 7469

How Tomcat Works【英文PDF+中文HTML+源码】.zip

How Tomcat Works【英文PDF+中文HTML+源码】 How Tomcat Works 主要是讲解Tomcat如何运行的一些核心资料。

《How To Tomcat Works》-第五章 容器

容器是一个处理用户servlet请求并返回对象给web用户的模块。 org.apache.catalina.Container接口定义了容器的形式,有四种容器:Engine(引擎), Host(主机), Context(上下文), 和 Wrapper(包装器)。

软件架构师之路 657

how tomcat works中英文版

how tomcat works中英文版(中文版名为:深度剖析tomcat),附带源码

How Tomcat Works 中文版

How Tomcat Works 中文版.pdf,很好的一本书,了解tomcat工作原理

编程_技术书阅读方法论(java/ )

备注:此博客为转载;一个 偶然的浏览的网页的机会找到的,“极客侠栈”;为自己编程的路指明方向;方便自己学习,进步…原博客地址请点击此处 一.Java学习之路吐血整理技术书从入门到进阶最全50+本(珍藏版) | 极客侠栈 ...

陆山右的技术博客 1247

Windows 10/11系统下TurboDesign 6.4.0完整安装指南(附序列号+破解补丁)

本文提供Windows 10/11系统下TurboDesign 6.4.0的完整安装指南,涵盖系统环境预检、安装程序部署、序列号处理及破解补丁部署等关键步骤。通过详细的安装教程和优化配置,帮助用户高效完成这款涡轮机械设计软件的安装与调试,解决常见兼容性问题。

s4t5u6v的博客 1030

《How Tomcat Works》学习(三)——连接器(一)——解析http请求路径与参数

前言 本文内容根据《How Tomcat Works》第三章学习所写。书中第三章的程序比较庞大,实现了简单的请求解析、请求头部解析等。鉴于程序比较复杂,所以我自己实现了一个更简易的版本。本文的程序主要是为了讲解web服务器解析请求的过程到底做了什么。 程序 启动类 我们创建一个启动类,作为main入口。这里我们新建一个连接器,启动连接器 public final class Bootstrap { public static void main(String[] args) { Ht.

sadoshi的专栏 454

机器人关节电机发热难题:从工程化角度拆解热管理解决方案(下)

摘要:本文系统分析了机器人关节电机与驱动系统的热管理方案,重点解决局部热点问题。针对不同功率场景提出了热管/均热板散热(适用于中小功率)和液冷散热(适用于高功率)的具体实施方案,详细比较了结构参数、材料选择、安装工艺和散热效果。特别强调了电机-驱动协同热管理的重要性,提出"工况联动+热路径共享"的核心理念,包括一体化散热结构设计和动态控制策略。最后介绍了热仿真与测试验证方法,确保方案的有效落地。通过系统级热管理,可显著降低温升(热点区域降温30-60℃),同时优化体积和能耗。

bother3000的博客 3329

AI Agent核心架构解析:从Tool、Skill到MCP协议的智能体构建实战

在人工智能领域,大语言模型(LLM)赋予了AI自主规划与决策的能力,推动了智能体(Agent)技术的演进。其核心原理在于构建一个具备感知、规划、行动与反思能力的自主系统。这一架构的技术价值在于将AI从被动应答升级为主动执行复杂任务的工作伙伴,显著提升了自动化水平与问题解决效率。应用场景广泛覆盖了市场分析、自动化办公、智能客服与垂直领域集成等。本文聚焦于实现这一能力的关键组件:基础工具(Tool)、组合技能(Skill)与标准化协议(MCP)。其中,Skill通过封装多个Tool形成可复用的高级能力,而MCP

chuannaoxuan4674的博客 321

how tomcat works[3] 连接器(源码级http协议解析)

连接器 ps:本篇详细讲述对http协议的解析。 从main方法为入口,顺一下流程: 1.使用启动类进行启动,启动类会创建连接器,并启动连接器的监听线程。 2.连接器的线程在while循环中执行如下操作: 等待HTTP请求; 为每个请求创建一个HttpProcessor实例; 调用HttpProcessor对象的process()方法。 3.HttpProcessor类的process()方法...

Monkey-yc 320

MATLAB实战:利用扫频数据重构系统伯德图的关键步骤

本文详细介绍了如何利用MATLAB处理扫频数据并重构系统伯德图的完整实战流程。内容涵盖数据导入与清洗、增益与相位的精确计算、频率响应数据对象(frd)的构建、数据平滑与插值处理,以及最终生成专业伯德图并进行关键参数(如相位裕度)标注的方法。文章重点解决了从实测“黑盒子”系统数据出发,获取直观频率响应特性曲线的核心问题,为控制系统分析与设计提供了实用指南。

weixin_29098117的博客 397

How Tomcat Works -- 目录

《How Tomcat Works》这本书的读书笔记,及主要内容感想。 作为一个世界范围广泛使用的强大框架,Tomcat必然有非常多的设计思想、设计模式,让我们学习。 不看这种包含设计思想的框架,只看关于设计的书籍,只做业务应用系统的开发,比较难提高设计能力,因为,业务系统更关注业务问题,可能比较常会遇到大数据、高并发类问题的解决,但是设计思想很少。 从高层到底层,从业务应用到通用框架,最后都会回到底层上来,底层的东西,更像技术。越往高层,业务占得比重越大,越容易脱离技术本身。 底层的东西有什么呢?比如

Java之旅 4896

Prokka实战:10分钟搞定细菌基因组注释(附详细参数解析)

本文深入解析Prokka细菌基因组注释工具的核心参数与实战策略。通过拆解其集成化工作流程,详细解读物种分类、功能注释、输出控制等关键参数,并提供快速初筛、高质量发表、质粒注释及批量处理四种典型场景的高效参数组合方案,帮助用户精准掌控注释过程,将原始序列转化为有价值的生物学见解。

weixin_29271053的博客 442

从2804云台电机到桌面机械臂:一个STM32/GD32玩家的FOC驱动踩坑全记录

本文详细记录了从2804云台电机到桌面机械臂的FOC驱动开发历程,涵盖了硬件选型、驱动方案优化、软件调试等关键环节。特别分享了L6234P驱动芯片的发热问题、AS5600编码器的I2C通信陷阱以及PID调参的实战经验,为DIY爱好者提供了宝贵的参考。

weixin_26897585的博客 481

《How Tomcat Works》学习(四)——连接器(二)——解析http头部参数

前言 上文已经对路径及请求参数进行了解析,本文会对头部的参数,如cookie、content-length、content-type进行解析 程序 HttpRequest类增加以下代码: public class HttpRequest implements HttpServletRequest { //...... private int contentLength; private String contentType; //...... public void par.

sadoshi的专栏 279

LM358模拟声音传感器原理图设计,已量产(声音传感器)

最近在做智能家居设备的声音触发模块时,搭了个基于 LM358 的模拟声音传感器电路 —— 不用复杂的专用芯片,靠通用运放就能把环境声音转化为可被单片机 AD 采集的电压信号,成本压得很低,实际调试下来灵敏度和稳定性都够用。今天把这个电路拆解开,聊聊每部分的设计思路。

不脱发的程序猿 470

【读书笔记/源码】How Tomcat Works 笔记 - c1~c10

how tomcat works读书笔记 c1-c10 附部分源码结构

qq_40690815的博客 1474

YOLO26一文弄懂 | YOLO26内容详解、网络结构解读 、yolo26.yaml配置文件详细解读与说明、YOLO26虚拟环境安装、模型训练、验证、推理参数详细解析 | 通俗易懂!入门必看系列!

YOLO26目标检测模型创新与应用指南 本文全面介绍了YOLO26目标检测模型的创新特性、网络结构及实践应用。YOLO26基于四大核心原则设计:简洁性(移除NMS后处理)、部署效率(端到端架构)、训练创新(MuSGD优化器)和任务优化(支持多种视觉任务)。模型包含五种尺寸规格,CPU推理速度提升43%,支持目标检测、实例分割、姿态估计等任务。 文章详细解析了YOLO26的网络结构(Backbone-Neck-Head三部分)和yaml配置文件,提供了从虚拟环境配置到模型训练、验证、推理的完整教程。

Ai缝合怪、助力小伙伴高效发论文 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

tomcat初识

参考: tomcat官方文档 《How Tomcat Works》 tomcat 配置文件 server.xml

老照片 148

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

How Tomcat Works

ServerSocket接受http请求,将请求封装为Request,将响应封装为Response,简单返回静态资源。

weixin_42442399的博客 1026

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

How tomcat works——引言

排版更好的百度电子书:https://yuedu.baidu.com/ebook/ac92f0d35122aaea998fcc22bcd126fff7055d60概述欢迎阅读《How Tomcat Works》。这本书详细的剖析了Tomcat 4.1和5.0工作原理,并讲解了其代号为“Catalina” 当前免费、开源、最流行的servlet容器的内部运作机制。Tomcat是个复杂的系统,它是由许多

终日思 < 须臾学 2744

读了两章的 How Tomcat Works

周一发现了一本书.How Tomcat Works 惯例先到豆瓣搜书评.结果书评出奇的好.然后下载了PDF.从简介中看,本书的每个章节都会不断的围绕怎么建造一个Tomcat讲解.我本人比较喜欢这种造轮子的书.原因很简单,比较笨.如果书中没有代码,很难从脑海中构件代码结构.可是万万没想到,看到第三章,就发现,书中的代码不全,完整的代码还要到GitHub下载.无奈只能放下这本好书.(个人觉得...

weixin_30834019的博客 264

Tomcat| how tomcat works总结

开篇先把关于tomcat的神图供上。 tomcat架构.png 这本书共分为20个章节,本文主要是对这本书的各个章节做一下总结。 第一章 simple web server 第一章搭建了一个最简单的web服务器,主要包括三个类,Request、Response和HttpServer,其中request类对发送来的报文做最简单的解析;response类响应一个简单的静态html页面;httpServer则是使用serversocket的accept方法来对端口进行监控。 第二章 a ..

YvesHe的专栏 899
上一篇: 【HTTP】HTTP通信
下一篇: 【SourceForge】镜像站
jy0921_
博客等级 码龄11年 329粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值