当前位置: 首页 > news >正文

Tomcat概述及部署

目录

一.Tomcat概述

1.介绍

2.使用场景

3.组件构成

4.组件结构

5.请求过程

二.Tomcat部署

1.关闭防火墙

2.下载安装JDK

3.安装启动tomcat

4.部署虚拟主机

4.1.创建 xy101 和 xy102 项目目录和文件

4.2.修改 Tomcat 主配置文件 server.xml

一.Tomcat概述

1.介绍

2.使用场景

  • 作为Web服务器,处理静态网页请求,如html页面,但是性能一般(只有nginx的六分之一)
  • 作为Servlet/JSP容器,运行JAVA语言开发的jsp动态网页程序,并作为中间件实现前端Web和后端数据库的协同工作,这也是tomcat的主要应用场景

3.组件构成

  • Web 容器:完成 Web 服务器的功能
  • Servlet 容器:名字为 catalina,用于处理 Servlet 代码
  • JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码

4.组件结构

每个 Service 会包含一个 Container 容器。在 Container 内部包含了 4 个子容器

  • Engine:引擎,用来管理多个虚拟主机,一个 Service 最多只能有一个 Engine
  • Host:代表一个虚拟主机,也可以叫站点,通过配置 Host 就可以添加站点
  • Context:代表一个 Web 应用,包含多个 Servlet 封装器;
  • Wrapper:封装器,容器的最底层。每一 Wrapper 封装着一个 Servlet,负责对象实例的创建、执行和销毁功能

Engine、Host、Context 和 Wrapper,这四个容器之间属于父子关系

容器 由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用

会有多个 Servlet 封装器

5.请求过程

  1. 用户在浏览器中输入网址,请求被发送到本机端口 8080,被在那里监听的 Connector 获得
  2. Connector 把该请求交给它所在的 Service 的 Engine(Container)来处理,并等待 Engine 的回应
  3. 请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用,最后在 Servlet 中执行对应的业务逻辑、数据存储等
  4. 执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回,最后返回给 Connector,并通过 Connector 返回给客户端
     

二.Tomcat部署

1.关闭防火墙

2.下载安装JDK

export JAVA_HOME=/usr/local/jdk1.8.0_391
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

[root@localhost jdk1.8.0_391]# vim /etc/profile
[root@localhost jdk1.8.0_391]# source /etc/profile
[root@localhost jdk1.8.0_391]# java -version

验证JDK环境变量是否安装成功

首先使用文本工具编写java源代码,比如 Hello.java 

在命令行中,输入命令:javac Hello.java,对源代码进行编译,生成 class 字节码文件

编译完成后,如果没有报错信息,输入命令:java Hello,运行 class 字节码文件,由 JVM 对字节

码进行解释和运行,打印 “Hello World”

public class Hello {			public static void main(String[] args){System.out.println("Hello world!");}
}

3.安装启动tomcat


cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
##启动tomcat ##
#后台启动
cd /usr/local/tomcat/bin
./startup.sh 
或
./catalina.sh start	
#前台启动
/usr/local/tomcat/bin/catalina.sh run		netstat -natp | grep 8080浏览器访问Tomcat的默认主页 http://192.168.80.100:8080

4.部署虚拟主机

很多时候公司会有多个项目需要运行,一般不会是在一台服务器上运行多个 Tomcat 服务,这样会

消耗太多的系统资源。此时, 就需要使用到 Tomcat 虚拟主机

例如现在新增两个域名 www.xy101.com 和 www.xy102.com, 希望通过这两个域名访问到不同的

项目内容

4.1.创建 xy101 和 xy102 项目目录和文件

mkdir /usr/local/tomcat/webapps/xy101
mkdir /usr/local/tomcat/webapps/xy102
echo "This is xy101 page\!" > /usr/local/tomcat/webapps/xy101/index.jsp
echo "This is xy102 page\!" > /usr/local/tomcat/webapps/xy102/index.jsp

4.2.修改 Tomcat 主配置文件 server.xml

vim /usr/local/tomcat/conf/server.xml
--165行前--插入
<Host name="www.xy101.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/xy101" path="" reloadable="true" />
</Host><Host name="www.xy102.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/xy102" path="" reloadable="true" />
</Host>

相关文章:

Tomcat概述及部署

目录 一.Tomcat概述 1.介绍 2.使用场景 3.组件构成 4.组件结构 5.请求过程 二.Tomcat部署 1.关闭防火墙 2.下载安装JDK 3.安装启动tomcat 4.部署虚拟主机 4.1.创建 xy101 和 xy102 项目目录和文件 4.2.修改 Tomcat 主配置文件 server.xml 一.Tomcat概述 1.介绍 …...

[Vue3:Vite构建项目]:安装router实现登录页面路由跳转

文章目录 一&#xff1a;前置依赖查看依赖安装vite npm create vitelatest sys-instruction-0607 --template vue-ts安装路由&#xff1a;npm install vue-router4安装elementUI&#xff1a;npm install element-plus --save 二&#xff1a;配置文件&#xff1a;views&#xff…...

概率论与数理统计,重要知识点——全部公式总结

二、一维随机变量及其分布 五个分布参考另外一篇文章 四、随机变量的数字特征 大数定理以及中心极限定理 六、数理统计...

Spring系列-SpringMvc父子容器启动原理解析

1、Spring整合SpringMVC 特性&#xff1a; 说到Spring整合SpringMVC唯一的体现就是父子容器&#xff1a; 通常我们会设置父容器&#xff08;Spring&#xff09;管理Service、Dao层的Bean, 子容器(SpringMVC)管理Controller的Bean .子容器可以访问父容器的Bean, 父容器无法访…...

[ssi-uploader插件]解决如何接收服务器返回数据+修改参数名称

前言 ssi-uploader是一款非常好用的多文件上传插件&#xff0c;源码是开源的&#xff0c;在github上面即可下载&#xff1a; https://github.com/ssbeefeater/ssi-uploader 但是源码有些微小的不足&#xff0c;今天我们解决两点问题&#xff1a; 上传文件完成后&#xff0c…...

InfiniGate自研网关实现思路七

25.网关Nginx负载模型配置 通过模拟多个HTTP服务配置到 Nginx 做负载均衡&#xff0c;以学习API网关负载的配置和使用 API 网关是用于支撑分布式 RPC 接口协议转换提供 HTTP 调用的一套服务&#xff0c;那么 API 网关系统就需要可横向扩展来满足系统的吞吐量诉求。所以这里需…...

277 基于MATLAB GUI火灾检测系统

基于MATLAB GUI火灾检测系统&#xff0c;可以实现图片和视频的火苗检测。火焰识别的三个特征&#xff1a;1个颜色特征&#xff0c;2个几何特征颜色特征&#xff1a;HSV颜色空间下&#xff0c;对三个通道值进行阈值滤波&#xff0c;几何特征1&#xff1a;长宽比&#xff0c;几何…...

【西瓜书】4.决策树

1 递归返回情况 &#xff08;1&#xff09;结点包含样本全为同一类别 &#xff08;2&#xff09;属性集为空&#xff0c;没有属性可供划分了 或 有属性&#xff0c;但是在属性上划分的结果都一样 &#xff08;3&#xff09;结点为空结点 **结束时判定该结点的类别遵循如下规则&…...

区块链--Ubuntu上搭建以太坊私有链

1、搭建私链所需环境 操作系统&#xff1a;ubuntu16.04&#xff0c;开虚拟机的话要至少4G&#xff0c;否则会影响测试挖矿时的速度 软件&#xff1a; geth客户端 Mist和Ethereum Wallet&#xff1a;Releases ethereum/mist GitHub 2、安装geth客户端 sudo apt-get update …...

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑&#xff1a; 页面发送ajax请求&#xff0c;将分页查询参数(page&#xff0c;pageSize, name)提交到服务端&#xff0c;获取分页数据&#xff1b; 页面发送请求&#xff0c;请求服务端进行图片下载&#xff0c;用于页面图片展示。 开发菜品信息分页查询功能&a…...

利用GPT和PlantUML快速生成UML图用于设计

在软件开发中&#xff0c;设计阶段可是关键的一步。UML&#xff08;统一建模语言&#xff09;图能帮我们更清晰地理解和规划系统结构&#xff0c;但手动画UML图有时会很费时费力。好消息是&#xff0c;通过结合使用ChatGPT和PlantUML&#xff0c;我们可以高效地生成UML图&#…...

web-上传项目文件夹到Git远程仓库

Git初识 概念&#xff1a;一个免费开源&#xff0c;分布式的代码版本控制系统&#xff0c;帮助开发团队维护代码 作用&#xff1a;记录代码内容&#xff0c;切换代码版本&#xff0c;多人开发时高效合并代码内容 检验成功 打开bash终端&#xff08;git专用&#xff09;命令…...

使用OpenPCDet训练与测试Transformer模型:如何加载自己的数据集

引言 Transformer架构因其强大的序列处理能力和长距离依赖捕捉能力&#xff0c;在自然语言处理领域取得了巨大成功。近年来&#xff0c;这一架构也被引入3D物体检测领域&#xff0c;如Voxel Transformer等&#xff0c;显著提升了模型在复杂场景下的检测性能。OpenPCDet整合了多…...

四舍五入问题

单纯输出四舍五入可以用 printf("%.nf",num); 但是这个方法有时候会出错 代表输出n位四舍五入小数 而将数四舍五入赋值给变量可以用round&#xff08;&#xff09;函数 a round(num); 表示将num四舍五入赋值给a 但是这么些只能转换位四舍五入的整数 可以改…...

零基础入门学用Arduino 第一部分(三)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…...

C++标准库random

random 完整文档看这里 三步走: 选择一种随机数种子选择一个随机数引擎选择一个随机数分布输出 随机数种子 //生成随机数种子,在Linux的实现中,是读取/dev/urandom设备 std::random_device rd; unsigned seed1 rd();// 获取当前时间点作为随机数种子 unsigned seed2 std:…...

电子电气架构——车载诊断DTC一文通

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…...

Golang | Leetcode Golang题解之第129题求根节点到叶节点数字之和

题目&#xff1a; 题解&#xff1a; type pair struct {node *TreeNodenum int }func sumNumbers(root *TreeNode) (sum int) {if root nil {return}queue : []pair{{root, root.Val}}for len(queue) > 0 {p : queue[0]queue queue[1:]left, right, num : p.node.Left, …...

工业信息化SCI期刊,中科院1区TOP,IF=12.3,收稿范围广泛

一、期刊名称 IEEE Transactions on Industrial Informatics 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;工程工业 影响因子&#xff1a;12.3 中科院分区&#xff1a;1区TOP 三、期刊征稿范围 IEEE工业信息学汇刊是一本多学科期刊&#xff0c;发表技…...

Spring Boot整合Redis

Spring Boot整合Redis Spring Boot 整合 Redis 是一种常见的做法&#xff0c;用于在 Spring Boot 应用程序中添加缓存、会话管理分布式锁等功能。 浅谈Redis Redis用于存储数据&#xff0c;且在内存当中进行存储。 但是在日常编写代码时&#xff0c;定义一个变量也就是属于在内…...

QMCDecode:免费解锁QQ音乐加密文件的终极解决方案

QMCDecode&#xff1a;免费解锁QQ音乐加密文件的终极解决方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换结…...

告别手动切割:Pixelorama智能精灵图处理方案

告别手动切割&#xff1a;Pixelorama智能精灵图处理方案 【免费下载链接】Pixelorama A free & open-source 2D sprite editor, made with the Godot Engine! Available on Windows, Linux, macOS and the Web! 项目地址: https://gitcode.com/gh_mirrors/pi/Pixelorama …...

N_m3u8DL-RE:现代流媒体下载的终极解决方案

N_m3u8DL-RE&#xff1a;现代流媒体下载的终极解决方案 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器&#xff0c;支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE 在当今…...

NaViL-9B效果惊艳:复杂背景证件照文字识别+人像属性分析展示

NaViL-9B效果惊艳&#xff1a;复杂背景证件照文字识别人像属性分析展示 1. 模型能力概览 NaViL-9B作为原生多模态大语言模型&#xff0c;在证件照处理领域展现出惊人的能力。它不仅能够准确识别复杂背景下的文字信息&#xff0c;还能对人像属性进行智能分析&#xff0c;为证件…...

火星探测器通信系统设计与关键技术解析

1. 火星探测器通信系统设计解析1.1 火星探测任务概述2021年5月15日&#xff0c;中国首次火星探测任务"天问一号"成功着陆火星北半球的乌托邦平原&#xff0c;标志着中国成为继前苏联和美国之后第三个成功实现火星软着陆的国家。此次任务中&#xff0c;"祝融号&q…...

010Editor逆向实战:从爆破到算法还原的完整通关指南(附注册机源码)

010Editor逆向工程深度解析&#xff1a;从关键跳转定位到注册机实现 1. 逆向工程基础与工具链搭建 逆向工程作为软件安全领域的核心技术&#xff0c;要求分析者具备扎实的汇编语言基础和系统级编程经验。在进行010Editor逆向分析前&#xff0c;需要构建完整的工具链环境&#x…...

Phi-4-Reasoning-Vision多场景落地:法律合同截图关键条款识别与逻辑校验

Phi-4-Reasoning-Vision多场景落地&#xff1a;法律合同截图关键条款识别与逻辑校验 1. 项目背景与价值 在法律服务领域&#xff0c;合同审核是耗时且容易出错的关键环节。传统人工审核方式面临两大挑战&#xff1a; 效率瓶颈&#xff1a;律师平均需要30分钟审核一份10页合同…...

工业现场部署必须知道的4个硬指标:FPS≥35、首帧<80ms、内存≤1.2GB、MTBF≥180天(附实测数据白皮书)

第一章&#xff1a;工业现场Python视觉部署的硬指标体系解析在工业现场&#xff0c;Python视觉系统并非仅关注算法精度&#xff0c;其落地成败高度依赖一系列可量化的硬性工程指标。这些指标直接决定系统能否在严苛的产线环境中长期稳定运行&#xff0c;涵盖实时性、鲁棒性、资…...

中考真题资源合集

2024版《万唯中考真题分类》合集 文件大小: 2.2GB内容特色: 2024版万唯中考真题按考点分类&#xff0c;全科覆盖适用人群: 初三学生、教师、家长陪读备考核心价值: 刷透真题&#xff0c;精准查漏补缺&#xff0c;冲刺高分下载链接: https://pan.quark.cn/s/73347caeee74 2026…...

Endnote参考文献序号对齐的终极解决方案

1. 为什么参考文献序号会对不齐&#xff1f; 很多科研工作者在使用Endnote插入参考文献时都遇到过这样的尴尬&#xff1a;当文献序号从个位数增长到十位数时&#xff08;比如从[9]变成[10]&#xff09;&#xff0c;原本整齐排列的参考文献列表突然变得参差不齐。这个问题看似简…...