手写Tomcat】的更多相关文章

学习JavaWeb之后,只知道如何部署项目到Tomcat中,而并不了解其内部如何运行,底层原理为何,因此写下此篇博客初步探究一下.学习之前需要知识铺垫已列出:Tomcat目录结构.HTTP协议.IO.网络编程(未完善) 1. Tomcat(正版) 笔者称自己手写的Tomcat为盗版,反之则为正版.在手写简易版Tomcat之前,我们来看看如何使用正版的Tomcat 1.1 创建JavaWeb工程 这里以Myeclipse为例 1.2 新建Servlet 新建MyServlet类继承HttpServ…
预备知识 编写服务器用到的知识点 1) Socket 编程2) HTML3) HTTP 协议4) 反射5) XML 解析6) 服务器编写 Socket编程 https://www.cnblogs.com/bfcs/p/10790130.html HTML知识 HTML:HyperText Markup Language 超文本标记语言用于描述网页文档的一种标记语言 表单(form):与用户之间进行交互 method:请求方式 get/post get 数据量小,安全性低,默认方式 post 数据…
点击查看代码 package com.grady.diytomcat; import com.grady.diytomcat.handler.RequestHandler; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import java.io.File; import java.io.IOExcep…
http://search.bilibili.com/all?keyword=%E6%89%8B%E5%86%99Tomcat%E6%BA%90%E7%A0%81 tomcat源码分析一:https://www.bilibili.com/video/av47142833?from=search&seid=4812028364705422016…
点击查看代码 package com.grady.diytomcat; import com.grady.diytomcat.handler.DiyNettyTomcatHandler; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.Channe…
点击查看代码 public class DiyTomcat { private int port = 8080; public static final HashMap<String, DiyServlet> SERVLET_MAPPING = new HashMap<>(); public static final HashMap<String,String> URL_MAPPING = new HashMap<>(); private static Th…
核心代码如下: public class DiyTomcat1 { public void run() throws IOException { ServerSocket serverSocket = new ServerSocket(8080); System.out.println("======服务启动成功========"); while (!serverSocket.isClosed()) { Socket socket = serverSocket.accept(); In…
1. 使用java 编写一个echo http服务器 使用java 编写一个echo http服务器 https://github.com/ZhongJinHacker/diy-tomcat/tree/base-tomcat 2. 编写一个提供servlet能力的 http服务器 编写一个提供servlet能力的 http服务器 https://github.com/ZhongJinHacker/diy-tomcat/tree/bio-tomcat 3. 编写一个有线程池化能力的servlet…
前述 自己手写的简易的tomcat,实现了tomcat的基本响应功能,项目代码已经上传到我的Github,刚刚开始学习这里,当前还存在很多问题 项目简述及代码 当我们的Web运行的时候,从浏览器发出的请求,必然首先到达tomcat中,之后由tomcat进行处理,由此要考虑tomcat要进行哪些处理,首先便是提供Socket服务,之后对于请求进行分发,把请求和产生的响应封装成request和response (1)提供Socket服务 (2)封装请求/响应对象 (3)将不同的请求映射到具体的Ser…
背景: 公司使用的YDB提供了http的查询数据库服务,直接通过url传入sql语句查询数据-_-||.ydb的使用参照:https://www.cnblogs.com/hd-zg/p/7115112.html 有的业务使用到了该功能.但ydb系统升级后,这个服务被遗漏了,导致使用到该功能的业务无法继续使用该功能.为了解决这个问题,需要开发一个http服务来调用ydb的jdbc接口返回json数据. 鉴于这个工程只需要一个http接口,用tomcat感觉太重了,于是打算手写一个简单的http服务…