Tomcat是怎么炼成的?(2)一个最简单的Web服务器

VS Code 搭建 STM32 开发环境:从 Keil 迁移与 AI 编程配置指南 嵌入式开发中,集成开发环境的选择直接影响编码效率与调试体验。传统 IDE 在代码补全、版本控制和插件生态上存在局限,而基于编辑器的工具链方案通过扩展组合实现编译、烧录与调试全流程。其技术价值在于灵活的工具链配置与 AI 辅助编程能力,可应用于 STM32 等 ARM Cortex-M 芯片开发。具体涉及 ARM GCC 编译器、Cortex-Debug 调试扩展、c_cpp_properties.json 智能补全配置以及 tasks.json 编译任务定义。从 Keil 迁移时需注意头文件路径、宏定义和编 阅读详情
我们之前已经可以接收到浏览器给我们的请求,并且知道请求内容中第一行就有希望访问的文件路径,那我们今天就来取得这个文件并返回给浏览器,等你完成今天的程序,你就会发现,一个最简单的网页服务器你已经写出来了,激动吧? 代码是一行一行敲出来的,让我们开始吧!

我们今天的任务主要是希望从浏览器中的请求中取得我们需要的文件路径,然后根据路径把客户请求的文件发回给客户端。我们就按照这个思路,先来取得我们需要的文件路径。
上一次最后的部分,我们知道客户请求的字符串中的第一行内容中第二个部分就是我们需要的。
GET /index.html HTTP/1.1
那我们首先就需要写一个字符串解析的方法,把这个路径取得。这个请求内容中,如果是正确的话,那文件路径是保存在第一个空格和第二个空格之间。那我们就按照这个规律,通过调用Java字符串的indexOf方法和substring方法来实现这个功能。既然是一个字符串解析的方法并且我们希望得到的是一个URL因此我们就给这个方法起名为parseUrl。这里我们为了简化问题,先将这个方法定义为一个静态的方法,最终方法会返回给我们需要的文件路径,具体代码如下:

public static String parseUri(String requestHeader){
		String requestFilePath = "";
		int index1 = requestHeader.indexOf(' ');
		if(index1>0){
			int index2 = requestHeader.indexOf(' ', index1);
			if(index2>0){
				requestFilePath = requestHeader.substring(index1, index2);
			}
		}
		return requestFilePath;
	}
这里建议你使用我们之前得到的用户请求字符串测试一下,看看是否可以取得 /index.html这个路径。那我们该如何将客户端需要的这个文件发给浏览器呢?这里我们还需要多做一些准备工作,下面我们先暂时将文件这块放一下,回头看下我们之前的程序,该如何给浏览器返回数据。       
之前我们曾经调用如下一段代码:  
InputStream inputStream = socket.getInputStream();
获得了之前用户的请求。对应的,我们还可以通过socket对象获得OutputStream对象,这样我们就可以通过OutputStream对象的write方法就可以向浏览器发送数据,具体可以看下如下的示例代码:
package com.tomcat;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

public class Main {
	
	public static void main(String[] args) throws UnknownHostException, IOException{
		System.out.println("Server started!");
		// 创建一个ServerSocket对象,监听本机8080端口
		ServerSocket serverSocket = new ServerSocket(8080, 0, InetAddress.getByName("127.0.0.1"));
		while(true){
			// 当有在8080端口访问的时候,调用accept方法得到Socket对象
			Socket socket = serverSocket.accept();
			// 通过Socket获得OutputStream流,用于向浏览器发送消息
			OutputStream outputStream = socket.getOutputStream();
			// 向浏览器写内容						
			outputStream.write("<H1>Hello World!</H1>".getBytes());
			// 关闭数据输出流
			outputStream.close();
		}
	}
}

       这次,我们从Socket对象中取得OutputStream对象,然后调用它的write方法,向浏览器发送一个经典的Hello World。这里要注意,OutputStream对象的write方法的参数是byte数组,因此需要调用字符串的getBytes方法取得当前字符串的byte数组,这点在后面我们作关于文件的传输时候还会提到。
       好了,现在先运行一下我们这个程序吧,正常情况下,可以看到Server started后,在浏览器的地址栏输入http://localhost:8080/index.html后,看下浏览器上是否有一个大大的HelloWorld,恭喜你,其实我们离一个简单的Web服务器已经很近了!
      不过每次都只是显示一个Hello World是不是有点太无聊了?而且我们前面都已经知道客户端问我们要的是什么文件了,下面我就让客户端能够得到到我们的文件吧。浏览器需要取得的文件也一定是存放在服务器的某个目录内的,这里我们就需要先建立一个文件夹,名称为webroot(其实随便你命名为何,这里只是笔者的爱好),然后打开一个文本编辑器,录入如下代码,最后以index.html文件名保存:

<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <h1>Hello World</h1>
    </body>
</html>

然后将这个文件夹放在程序的同级目录(即与src、bin目录同级),具体目录层级如下图。
       好,至此,我们已经将浏览器需要访问的文件准备好。
这里,我们再梳理一下服务器的执行逻辑: 1  当服务器收到一个请求的时候;2  解析请求,取得文件路径;3  需要从指定的文件夹下读取文件;4  将文件以byte数组形式返回给浏览器;这里第一步,我们先要创建一个变量,用于保存指定文件夹路径:

public static String WEB_ROOT = "webroot";
     变量的值就是我们刚才创建的文件夹名称,因为我们将文件夹放在程序的同级目录,所以根据相对路径,我们只需要知道文件夹名称即可,可能你会觉得这样不够人性化,没关系,后面我们会慢慢完善。与前面解析文件名称的处理相同,我们首先编写一个方法,传入参数分别为OutputStream和已经解析好的文件名称,主要的功能是读取文件内容,然后发回给客户端,这个算是个核心代码了,具体的程序代码如下:
public static void processStaticResource(OutputStream outputStream,String filePath) throws IOException{
	FileInputStream fileInputStream = null;
	try{
		File file = new File(filePath);
		fileInputStream = new FileInputStream(file);
		
	    byte[] bytesForFile = new byte[BufferSize];
		int ch = fileInputStream.read(bytesForFile, 0, BufferSize);
		while(ch!=-1){
			outputStream.write(bytesForFile, 0, ch);
			ch = fileInputStream.read(bytesForFile, 0, BufferSize);
		}
	}catch (FileNotFoundException e) {
		// TODO: handle exception
		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>";
		outputStream.write(errorMessage.getBytes());
	}finally{
		if(fileInputStream!=null){
			fileInputStream.close();
		}
	}
}	

     这里我再简单解释一下这个方法:
       首先我们定义了一个FileInputStream的对象,用于从File对象中读取文件内容。
       然后根据文件路径,构造一个File对象。
 这里要特别注意这个bytesForFile这个byte数组。之前我们在读取用户的HTTP协议内容的时候也使用过这个byte数组,在网络之间传递数据都需要转换为这种形式,后面我们还会多次使用到,另外也建议深入去阅读JAVA的IO处理,以及NIO相关的知识。好,我们在回到我们定义的这个数组时候使用了BufferSize这个变量,这里是我们创建的一个全局变量,值为2048,这点是为了便于维护。接着我们再看下这段代码,作用就是将文件的内容以Byte数组的形式发回给客户端:

int ch = fileInputStream.read(bytesForFile, 0, BufferSize);
while(ch!=-1){
    outputStream.write(bytesForFile, 0, ch);
    ch = fileInputStream.read(bytesForFile, 0, BufferSize);
}
     我们调用fileInputStream对象的read方法,根据设定的缓冲区大小,将文件内容写入到byte数组内,返回值为读取的字节数。如果未读取完成,则需要依次调用fileInputStream对象的read方法和outputStream对象的write方法将bytes数组的内容发回到浏览器。其实道理上这个与我们前面写的那个Hello World是相同的。
     另外还要注意我们需要处理的异常, FileNotFoundException,即当客户端希望访问的文件在服务器端没有,比如客户端发来的请求为:http://localhost:8080/helloworld.html。这时就需要捕捉这个文件无法找到的异常,返回给客户端一个报错信息:国际标准404的错误。
     最后我还需要将我们的fileInputStream对象给关闭。在这个方法中还可能回引发IOException,这里为了简化我们就直接抛出。
好,我们现在把这我们写的这个方法也添加到我们的程序,最终的代码如下:

package com.tomcat;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

public class Main {
	public static int BufferSize = 2048;
	public static String WEB_ROOT = "webroot";
	
	public static void main(String[] args) throws UnknownHostException, IOException{
		System.out.println("Server started!");
		// 创建一个ServerSocket对象,监听本机8080端口
		ServerSocket serverSocket = new ServerSocket(8080, 0, InetAddress.getByName("127.0.0.1"));
		while(true){
			// 当有在8080端口访问的时候,调用accept方法得到Socket对象
			Socket socket = serverSocket.accept();
			// 通过Socket获得OutputStream流,用于向浏览器发送消息
			InputStream inputStream = socket.getInputStream();
			OutputStream outputStream = socket.getOutputStream();
			
			String requestHeader;
			StringBuilder stringBuilder = new StringBuilder();
			byte[] bytes = new byte[2048];
			int bytesLength = inputStream.read(bytes);
			for(int i =0 ; i<bytesLength; i++){
				stringBuilder.append((char)bytes[i]);
			}			
			requestHeader = stringBuilder.toString();
			// 解析客户端需要访问的文件路径
			String filePath = WEB_ROOT +"/" +parseUrl(requestHeader);
			
			// 将客户端需要的文件发出
			processStaticResource(outputStream, filePath);
			
			// 关闭Socket连接
			socket.close();
		}
	}
	// 解析客户端发来的请求报文
	public static String parseUrl(String requestHeader){
		String requestFilePath = "";
		int index1 = requestHeader.indexOf(' ');
		if(index1>1){
			int index2 = requestHeader.indexOf(' ', index1+1);
			if(index2>1){
				requestFilePath = requestHeader.substring(index1+1, index2);
			}
		}
		return requestFilePath;
	}
	// 将静态文件发送给客户端
	public static void processStaticResource(OutputStream outputStream,String filePath) throws IOException{
		FileInputStream fileInputStream = null;
		try{
			File file = new File(filePath);
			fileInputStream = new FileInputStream(file);
			
		    byte[] bytesForFile = new byte[BufferSize];
			int ch = fileInputStream.read(bytesForFile, 0, BufferSize);
			while(ch!=-1){
				outputStream.write(bytesForFile, 0, ch);
				ch = fileInputStream.read(bytesForFile, 0, BufferSize);
			}
		}catch (FileNotFoundException e) {
			System.out.println(e.getMessage());
			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>";
			outputStream.write(errorMessage.getBytes());
		}finally{
			if(fileInputStream!=null){
				fileInputStream.close();
			}
		}
	}
} 

     好了,这时将我们的服务器运行起来,然后打开你的浏览器,输入http://localhost:8080/index.html   如果你看到了那个大大的Hello World!恭喜你,你已经完成了一个简单的Web服务器了,如果有兴趣,你可以多找一些静态网页,带图片的测试一下,享受一下自己的胜利果实吧,其实挑战才刚刚开始!另外,现在的代码量还不大,我会尽量把代码全部都贴上,后面也考虑阅读的连贯性和方便依据情况只将将最重要的代码写到正文里。如果需要源代码的话也可以直接联系我:changyu496#gmail.com。      非常感谢,欢迎批评指正!










java+Tomcat搭建一个简单的服务器 开发环境 JDK 。最好使用java8,其他版本可能会出问题。 eclipse开发工具。Eclipse Jee Oxygen,java开发 IDE。 Tomcat 9服务器。 Mysql数据库。mysql环境安装好,使用workbench进行操作。 创建项目 打开eclipse,先配置Tomcat服务器。 (1).打开windows-> preferences,找到Server下方的R... 阅读详情

相关推荐

JAVAweb Tomcat部署web服务器(项目)

web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交百的、跨平台的分布式图形信息系统。是建立在internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个写为关联的网状结构。Web简述:可以通过http协议访问的网络服务,称为web,比如京东,天猫,淘宝等等;采用Java的相关技术栈来实现Web功能的开发。

tdx03的博客 2707

走进tomcat之一个简单Web服务器

HTTP(超文本传输协议)允许Web服务器和浏览器通过Internet发送并接收数据,是一种基于“请求-响应”的协议。HTTP使用可靠的TCP链接,TCP协议默认端口为80端口; Java中Socket类实现了TCP协议,使用Socket进行编写简易Web服务器:包含类(request,response,HttpServer) Rquest类 : public class Reque

xaign2008aaa的博客 521

思科模拟器PT8.2实战:用MQTT协议搭建智能家居控制原型(附完整代码)

本文详细介绍了如何在思科模拟器Packet Tracer 8.2中,利用MQTT协议构建一个智能家居灯光控制原型。从环境准备、拓扑设计到MQTT代理配置,手把手指导您完成发布者与订阅者的Python代码编写,实现开关对LED的远程控制。通过此实战项目,您将深入理解MQTT协议在物联网中的核心应用,掌握从理论到实践的完整开发流程。

weixin_29281941的博客 361

Tomcat服务器部署+Web项目搭建

Tomcat服务器部署+Web项目搭建 1.Tomcat服务器     1 . Tomcat下载     2 . Tomcat启动与关闭     3 . 配置端口号2.IDEA搭建Web项目 1 . web项目创建 2 . 本地服务器配置 Tomcat下载 tomcat官网:tomcat 选择与自己电脑对应的位数下载,我们下载64位的 下载完成以后,我们将tom

qq_45809464的博客 2万+

vit的cam和注意力图: VIT模型的可解释性

VIT的热力图怎么画

YI_SHU_JIA的博客 1万+

超详细版!Obsidian+Claude+Skills+云同步,打造智能 AI 知识库

本文介绍如何搭建高效的AI知识管理系统,将Obsidian笔记工具与ClaudeAI助手深度整合。通过ClaudeCode安装配置、ObsidianSkills插件添加和坚果云同步设置,实现本地存储安全性与云端便捷性的完美结合。该系统支持智能笔记整理、知识图谱可视化、智能搜索问答和内容创作辅助等功能,使静态笔记转变为能自动分析关联、处理复杂结构的"活"知识库。详细步骤包括工具准备、环境配置、插件安装和云同步设置

2301_79998006的博客 1082

手把手教你用JSP+Servlet+Tomcat实现一个最简单的Web应用

JSP+Servlet+Tomcat实现一个简单的Web应用 需要使用到的技术①JSP② Servlet③TomcatWeb开发中的常见概念Demo插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导...

qq_44336275的博客 1万+

Xilinx FPGA 10G Ethernet Subsystem example

The 10G Ethernet subsystem provides 10 Gb/s Ethernet MAC, Physical Coding Sublayer(PCS) and Physical Medium Attachment (PMA) transmit and receive functionality over anAXI4-Stream interface.

青城扬沙的博客 2382

Web应用服务器——Tomcat

最近学校的课程在学习Spring框架,接触到了Tomcat,这一篇就来浅析一哈Tomcat的安装及使用 1.Web应用服务器 首先来明晰一下Tomcat是用来干什么的, 2.官方下载 3.目录解析及运行 4.可能出现的问题及解决方案 5.网页的发布 ...

敲敲敲 4275

DeepSeek在实时计算与流处理系统中的突破性实践

对于技术决策者而言,现在正是将DeepSeek实时计算技术纳入企业架构蓝图的关键时机,那些能够率先构建实时智能能力的企业,将在数据驱动的商业竞争中赢得决定性优势。DeepSeek通过创新的流处理架构,成功将复杂事件处理(CEP)的延迟降低到亚秒级,同时保证了计算结果的精确性。DeepSeek研发的神经架构搜索(NAS)与知识蒸馏联合优化框架,可在保持模型精度的前提下,将参数量压缩至原始模型的1/100,实现边缘设备的实时AI推理。随着5G和物联网技术的普及,对实时处理能力的需求将呈指数级增长。

Programming Talk 291

微信小程序 - 实现人脸识别对比+人脸相似度数据,用户从相册选择或拍照上传两张图片进行人脸对比得到人脸相似度及判断是否是同一个人,微信小程序检测人脸相似度(免费纯前端方案+调用第三方API接口方案)

微信小程序实现人脸识别对比,微信小程序人脸对比 人脸对比识别 人脸对比相似度,实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,小程序人脸相似度对比,快速识别两张照片的相似程度(用百分比)图片相似度对比在线测试,图片相似度对比,微信小程序人脸相似度对比分析,计算两张人脸的相似度,从而判断是否同一个人,并给出相似度评分。小程序如何实现人脸相似度比对,小程序纯前端怎么对比两张图片的相似度,计算两幅图像的相似度,图像相似度对比方法,调用百度AI的人脸识别,微信小程序中实现人脸识别认证,实现人脸检测、人脸

🏆 前端领域优质创作者 4864

【Web服务器】Tomcat的部署

主要介绍了tomcat的概念、jdk安装配置、tomcat安装配置、虚拟主机配置、多实例部署

一个萌新的博客 1万+

RTX6000 PRO BLACKWELL 最优 CUDA 版本选择指南(适配 vLLM/SGLang 大模型推理)

本文针对NVIDIA Blackwell架构RTX6000PRO显卡部署vLLM/SGLang大模型推理引擎时的CUDA版本选择问题,提出专业建议。分析表明,CUDA12.9(需搭配552.06+驱动)是最优选择,因其完全支持BW架构特性,且与vLLM/SGLang最新版本深度适配。文章提供详细的Linux环境部署教程,包括驱动升级、CUDA12.9安装及vLLM/SGLang配置步骤,并指出CUDA13.0目前适配不完善,不推荐新手使用。最后给出常见问题解决方案,强调版本匹配对推理性能和稳定性的重要性。

2501_93651177的博客 682

WEB服务器——Tomcat

Tomcat 是一个开源的轻量级 Web 服务器,主要用于运行 Java Web 应用。它支持 Servlet 和 JSP 规范,是一个 Servlet 容器。Tomcat 内部集成了 HTTP 服务器,可以响应客户端的 HTTP 请求。

cyt涛的博客 1400

beegfs读取文件完整流程分析

读取小于512KB文件数据,小于1s 读取15MB文件数据,花费7秒。

wfzy的博客 836

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Java Web】Web 服务器简单原理,如何理解 Tomcat、Servlet,并实现一个玩具 Web 框架

Web 服务器原理 Tomcat 我们经常将 tomcat 称为 服务器,然而这种说法让我迷惑了很久。 我认为 tomcat 所作的工作比较接近 Web 框架 这个概念。只不过,在 Java ee 的生态中,Servlet 才应该被称为 框架,而 tomcat,我们可以认为它是 框架的实现。 要理解这些东西的含义和 Java Web 服务器(如 tomcat)原理,我们应该首先来谈一下 Servlet。 Servlet Servlet 本质是一个接口,Java 并没有对它做任何实现,仅提供了 Servlet

高厉害 0w0 1495

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Web服务器TomCat快速入门(从安装到部署)

Web 服务器是一个应用程序,对 HTTP 协议的操作进行封装,使得程序员不必直接对协议进行操作,让 Web 开发更加的便捷。Web 服务器是安装在服务端的一款软件,我们可以将自己的 Web 项目部署到 Web 服务器软件中,当 Web 服务器软件启动后,部署在 Web 服务器软件中的资源就可以通过浏览器来访问。Web 服务器主要的功能是提供网上信息浏览服务。

zhangxia_的博客 3339

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Eclipse部署Web项目到Tomcat服务器中

创建并部署Web应用程序

m0_51523819的博客 1万+

Web服务器—Tomcat

Web服务器—Tomcat 备注:该技术博客的内容是我根据技术视频整理与总结的(并非复制粘贴)。取自黑马JavaWeb课程。 一、概述 首先学习汤姆之前,我们应该先理解一个概念,什么是服务器? 服务器:安装了服务器软件的计算机。本质上还是一台电脑,不过这台电脑的性能非常好!一般作为服务器的电脑配置非常高。 服务器软件:接收用户的请求,处理请求,做出响应。 web服务器软件:它是服务器软件中的一种,也可以接收用户的请求,处理请求,做出响应。只不过web服务器软件让用户通过浏览器来访问的。 在web服务器软件中

保持学习 2046

Web服务器(Tomcat、项目部署)

Web服务器的作用:封装HTTP协议操作,简化开发。可以将Web项目部署到服务器中,对外提供网上浏览服务。Tomcat是一个轻量级的Web服务器,支持Servlet/JSP少量JavaEE规范,也称为Web容器,Servlet容器。

weixin_71219171的博客 1532

Web服务器之Tomcat

本篇文章,详细的介绍了Tomcat 的使用步骤,以及Tomcat的部署方式,还有安装完成后 遇到的一些问题,比如,控制台中文乱码,黑窗口启动一闪而过,启动tomcat时候报错等问题

小白白O快起来 1733

【Web】初识Web和Tomcat服务器

转眼就大三了,之前学习软件工程和java这两门课的时候都有接触到javaweb,但是都是浅尝辄止,只是了解了皮毛,完成了几个现成的项目,并没有深入学习javaWeb的相关知识。从今天开始,重新从零开始学习一下web的基础知识,为接下来的实习就业做好准备。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器今天的学习就到此结束啦,希望大家读完有所帮助,明天我们将会学习servlet技术,一起加油!!!

gdjdjdj的博客 1056

python搭建web服务器需要tomcat吗_WEB服务器、WEB容器、TOMCAT、APACHE

容器:一种服务调用规范框架,J2EE 大量运用了容器和组件技术来构建分层的企业级应用。在 J2EE 规范中,相应的有 WEB Container 和 EJB Container 等WEB容器是跟基于 HTTP 的请求打交道;EJB 容器是跟数据库、其它服务打交道。WEB 容器给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET 直接跟容器中的环境变量交互,不必...

weixin_39805195的博客 953

Tomcat-服务器、web、管理配置

服务器配置服务器配置Tomcat服务器的配置主要集中于下的server.xmlweb.xml文件server.xml是tomcat服务器的核心配置文件,包含了Tomcat的Servlet容器(Catalina)的所有配置。由于配置的属性特别多,我们在这里主要讲解其中的一部分重要配置。Server是server.xml的根元素,用于创建一个Server实例,默认使用的实现类是org.apache.catalina.core.StandardServer。

Bonnie_1215的博客 1792

最简单的方法!!!:在一个Tomcat服务上部署多个项目,一个服务器上部署多个Tomcat

**这是我查阅网上很多资料之后,走过很多坑之后总结的最简单的方法,无论是一个Tomcat服务器上同时部署多个项目,还是在一个服务器上同时启动部署多个Tomcat都是最最简单的方法。**

weixin_44149663的博客 2274

WEB服务器-Tomcat

服务器硬件指的也是计算机,只不过服务器要比我们日常使用的计算机大很多。服务器,也称伺服器。是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。在网络环境下,根据服务器提供的服务类型不同,可分为:文件服务器,数据库服务器,应用程序服务器,WEB服务器等。

actavy的博客 1393
上一篇: Tomcat是怎么炼成的?(1)兼一点废话
下一篇: Cent OS服务器配置(JDK+Tomcat+MySQL)
codingforfun
博客等级 码龄15年 2粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值