核心代码如下: public class DiyTomcat1 { public void run() throws IOException { ServerSocket serverSocket = new ServerSocket(8080); System.out.println("======服务启动成功========"); while (!serverSocket.isClosed()) { Socket socket = serverSocket.accept(); In…
点击查看代码 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…
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…
学习JavaWeb之后,只知道如何部署项目到Tomcat中,而并不了解其内部如何运行,底层原理为何,因此写下此篇博客初步探究一下.学习之前需要知识铺垫已列出:Tomcat目录结构.HTTP协议.IO.网络编程(未完善) 1. Tomcat(正版) 笔者称自己手写的Tomcat为盗版,反之则为正版.在手写简易版Tomcat之前,我们来看看如何使用正版的Tomcat 1.1 创建JavaWeb工程 这里以Myeclipse为例 1.2 新建Servlet 新建MyServlet类继承HttpServ…
接上文 多线程编程学习笔记——使用异步IO 二.   编写一个异步的HTTP服务器和客户端 本节展示了如何编写一个简单的异步HTTP服务器. 1.程序代码如下. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Ta…
预备知识 编写服务器用到的知识点 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 数据…
本文主要介绍如何通过netty来手写一套简单版的HTTP服务器,同时将关于netty的许多细小知识点进行了串联,用于巩固和提升对于netty框架的掌握程度. 服务器运行效果 服务器支持对静态文件css,js,html,图片资源的访问.通过网络的形式对这些文件可以进行访问,相应截图如下所示: 支持对于js,css,html等文件的访问: 然后引用相应的pom依赖文件信息: <dependency> <groupId>com.alibaba</groupId> <ar…
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bordered th, .table-bordere…
如果是编写一个服务器demo,比较简单,只要会socket编程就能实现一个简单C/S程序,但如果是实现一个健壮可靠的服务器则需要考虑很多问题.下面我们看看需要考虑哪些问题. 一.维持心跳 为何要维持心跳,TCP难道不是一个安全可靠的连接么?正常情况下,C端和S端无论是谁掉线,对方都能感知到.从而进行后续处理,比如释放维持的资源并通知业务层进行相应的业务处理. 如果TCP通道非常繁忙,C端和S端都能通过正常的业务通信感知到对方的存在与否.但如果TCP通道长时间无数据往来,这种感知就无法主动获取到,…
介绍 我最近需要为一个.net项目准备一个内部线程通信机制. 项目有多个使用ASP.NET,Windows 表单和控制台应用程序的服务器和客户端构成. 考虑到实现的可能性,我下定决心要使用原生的socket,而不是许多.NET中已经提前为我们构建好的组件, 像是所谓的管道, NetTcpClient 还有 Azure 服务总线. 这篇文章中的服务器基于System.Net.Sockets类异步方法. 这些允许你支持大量的socket客户端, 而一个客户端的连接是唯一的阻塞机制. 阻塞的时间是可以…