Tomcat相关概述和部署

目录

一、Tomcat知识

1.Tomcat概述

2.Tomcat组件构成 

3.Tomcat 功能组件结构

4.Tomcat的请求过程

二、tomcat服务部署

1.老样子准备工作——关闭防火墙和selinux,防止其对安装过程的干扰

2.将准备好的软件包拖入/opt目录下,进行安装JDK

3.设置JDK环境变量

4.编写一个java 简易的源代码,进行环境测试 

5.安装启动Tomcat

6.部署虚拟主机

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

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


一、Tomcat知识

1.Tomcat概述

Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成

Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户(据了解tomcat的并发量处理能力是nginx的六分之一)不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的功能,然而由于其处理静态 HTML 的能力远不及 Apache 或者 Nginx,所以 Tomcat 通常是作为一个 Servlet 和 JSP 容器,单独运行在后端

2.Tomcat组件构成 

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

Tomcat 是 Web 应用服务器,也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器,负责处理客户的.jsp动态页面的请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户

Servlet :是Java Servlet 的简称,可以理解为是一个服务连接器,是用 Java 编写的服务器端程序,具有独立于平台和协议的特性

简单的理解:servlet 就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建。

JSP: 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入

Java 代码。标签通常以 <% 开头,以 %> 结束。也是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。
JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页

因此 Tomcat 是 Web 应用服务器,也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器,负责处理客户的.jsp动态页面的请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户。

3.Tomcat 功能组件结构

Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。 其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

  • Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
  • Container:负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用 Servlet 相关逻辑。
  • Service:对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。
  • Container 结构分析:每个 Service 会包含一个 Container 容器。在 Container 内部包含了 4 个子容器

👆4个子容器的作用分别是:

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

Engine、Host、Context 和 Wrapper,这四个容器之间属于父子关系。
容器 由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用会有多个 Servlet 封装器。

4.Tomcat的请求过程

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

二、tomcat服务部署

1.老样子准备工作——关闭防火墙和selinux,防止其对安装过程的干扰

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.将准备好的软件包拖入/opt目录下,进行安装JDK

cd opt
tar xf jdk-8u391-linux-x64.tar.gz
mv jdk1.8.0_391 /usr/localcd /usr/local/
java -version

3.设置JDK环境变量

vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_391             #指定JAVA的家目录
export JRE_HOME=$JAVA_HOME/jre                       #指定JRE家目录(运行环境)
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib      #指定JAVA运行环境
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH       #将$JAVA_HOME/bin:$JRE_HOME/bin:加入PATH环境变量source /etc/profile   #重新加载
java -version

4.编写一个java 简易的源代码,进行环境测试 

vim hello.java
#类名、接口名命令:英文大小写字母、数字字符、$和_,不能使用关键字和数字开头;
一个单词命名时第一个单词的首字母要大写;多单词组成时,所有单词的首字母大写:XxxYyyZzz(大驼峰命名法)
public class hello {			public static void main(String[] args){System.out.println("hello world!");}
}javac hello.java
java hello

5.安装启动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

#前台启动
cd /usr/local/tomcat/bin
./catalina.sh run		netstat -lntp | grep 8080浏览器访问Tomcat的默认主页 http://192.168.80.101:8080

 

访问192.168.80.101:8080 

6.部署虚拟主机

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

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

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

项目内容

1.创建 xy101 和 xy102 项目目录和文件
cd /usr/local/tomcat/webapps
mkdir xy101
mkdir xy102
echo "this is xy101 test" > xy101/index.html
echo "this is xy102 test" > xy102/index.html
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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式学习记录6.5(内存分配/构造函数/析构函数)

目录 目录 一.c动态内存分配回收 1.1分配 1.2回收 1.3new、delete和malloc、free之间的区别(重点&#xff09; 二.构造函数 2.1功能,格式 2.2示例 三.析构函数 3.1功能&#xff0c;格式 3.2特点 3.3示例 四.思维导图/练习 4.1思维导图 4.2练习 一.c动态内存分配回…

无需复杂步骤,Win11用户轻松开启旧版文件资源管理器!

在Win11电脑操作中&#xff0c;用户可以使用到新版的文件资源管理器&#xff0c;但总是有各种错误、卡顿等问题的出现&#xff0c;所以很多用户都不喜欢新版资源管理器。接下来小编给大家介绍一个简单的方法&#xff0c;帮助Win11用户快速开启旧版文件资源管理器。 具体操作如下…

NumPy 通用函数(ufunc):高性能数组运算的利器

NumPy 通用函数&#xff08;ufunc&#xff09; 简介 NumPy 通用函数&#xff08;ufunc&#xff09;&#xff0c;代表“通用函数”&#xff0c;是一类用于对 ndarray 对象进行逐元素运算的高性能函数。ufunc 使 NumPy 能够在底层高效地利用 C 语言实现向量化操作&#xff0c;从…

【RISC-V】站在巨人的肩膀上——看开源芯片、软件生态、与先进计算/人工智能/安全的结合

目录 会议议程专题二&#xff1a;RISC-V与先进计算基于RISC-V的后量子密码芯片设计&#xff0c;刘冬生&#xff0c;华中科技大学存算一体集成芯片&#xff0c;刘琦&#xff0c;复旦大学面向端侧大模型计算的RISC-V矩阵扩展架构&#xff0c;复旦大学&#xff0c;韩 军 专题五&am…

开源基于Rust编写的Web服务器

基于 RUST 的 WEB 资源服务器 Github 地址 LTPP-GIT 地址 官方文档 该项目于 2024 年 5 月 1 日开始开发 预期功能 功能支持情况当前情况多线程支持是是服务支持配置化是是防盗链支持是是gzip 支持是是反向代理支持是是自定义状态码对应资源文件是是日志支持是是负载均衡支…

easyexcel模板填充列表

引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency>编写模板 编写代码 public class FillData {private String name;private Double number;pu…

如何解决 Zabbix模板同步超时:解决运维技术领域的BugFailed to sync Zabbix template due to timeout

如何解决 Zabbix模板同步超时&#xff1a;解决运维技术领域的BugFailed to sync Zabbix template due to timeout 原创作者&#xff1a; 猫头虎 作者微信号&#xff1a; Libin9iOak 作者公众号&#xff1a; 猫头虎技术团队 更新日期&#xff1a; 2024年6月6日 博主猫头虎…

003 Spring注解

文章目录 PathVariable和RequestParamPathVariable 示例RequestParam 示例 GetMapping、PostMapping、PutMapping、DeleteMapping1. GetMapping2. PostMapping3. PutMapping4. DeleteMapping总结 Autowired和ResourceAutowired使用场景如何使用注意事项 Resource1. Resource的作…

毛坏房无从下手,不知道怎么装

毛胚房装修步骤      1验房,      2,借钱      3,出设计图施工图      4,决定找公司还是自装      5,拆除墙体      6,安装中央空调或风管机      7,改水电      8,做地暖      9封阳台      10,做防水      11,铺瓷砖      1…

LabVIEW源程序安全性保护综合方案

LabVIEW源程序安全性保护综合方案 一、硬件加密保护方案 选择和安装硬件设备 选择加密狗和TPM设备&#xff1a;选择Sentinel HASP加密狗和支持TPM&#xff08;可信平台模块&#xff09;的计算机主板。 安装驱动和开发工具&#xff1a;安装Sentinel HASP加密狗的驱动程序和开发…

Java物业管理系统+数据库应用程序开发[JavaSE+JDBC+idea控制台+MySQL]

背景&#xff1a; 使用JavaSEJDBCMySQL技术实现一个物业管理系统&#xff0c;具体要求如下 物业管理系统需求&#xff1a; 需求分析 1.1用户需求分析 在进入系统之前&#xff0c;要进行身份确认&#xff0c;只有用户名和用户密码都相符的用户方可进入本系统&#xff0c;为…

SASAM软件架构静态分析法-系统架构师(六)

1、体系结构权衡分析法&#xff08;Architecture Tradeoff Analysis Method ATAM&#xff09;包含四个主要活动领域&#xff0c;分别是 场景和需求的收集、体系结构视图和场景的实现、&#xff08;&#xff09;、折中。基于场景的架构分析方法&#xff08;Scenarios-based Arch…

读写csv文件的C++实现

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言读写csv文件的C++实现前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对读写csv文件的C++实现做个简单的…

大归纳!!教你使用<string.h>的字符函数与字符串函数!!☑

这篇博客为你归纳了所有的字符函数和最常用的字符串函数&#xff0c;以及对应的模拟实现&#xff01;&#xff01;你可以直接循着目录跳到你需要的段落哦&#xff01;&#xff01;&#x1f60d; 目录 字符函数 字符分类 字符判断函数 islower——判断小写字母 isupper——…

JVM学习-Jprofiler

JProfiler 基本概述 特点 使用方便&#xff0c;界面操作友好对被分析的应用影响小(提供模板)CPU&#xff0c;Tread&#xff0c;Memory分析功能尤其强大支持对jdbc,noSql,jsp,servlet,socket进行分析支持多种模式(离线、在线)的分析支持监控本地、远程JVM跨平台&#xff0c;拥…

纯血鸿蒙开发教程:如何实现运动饮食卡片效果

开发背景 人们对健康的要求越来越高&#xff0c;从单纯的健康饮食到健康运动&#xff0c;再到两者的结合。但是&#xff0c;饮食和运动之间的平衡一般人很难掌握&#xff0c;而我们这款 APP 将饮食、运动、以及自身身体状况&#xff08;如体脂、体重、内脂等&#xff09;有机结…

力扣1838.最高频的元素的频数

力扣1838.最高频的元素的频数 首先排序 然后右指针遍历补成的数 每次加**差值(num[i] - num[i-1]) * 位数(i - j) class Solution {public:int maxFrequency(vector<int>& nums, int k) {int res1,n nums.size();sort(nums.begin(),nums.end());long long ans0;fo…

编程互动遥控机器狗电子方案定制

东莞酷得智能科技方案公司&#xff0c;专注于电子玩具行业MCU单片机电子方案定制开发服务。酷得开发的电子方案中&#xff0c;涵盖了益智、娱乐、运动等多个领域&#xff0c;满足了不同年龄段孩子们的需求。这些玩具不仅能帮助孩子们度过愉快的时光&#xff0c;还能在游戏中学习…

linux上VirtualBox使用

前言 最近想把唯一的windows系统装成linux&#xff0c; 但是确实存在一些特殊软件无法舍弃&#xff0c;所有装完linux需要用虚拟机装个windows 上来使用特定的一些软件&#xff08;不想用wine了&#xff09;。 还有对一些特定usb设备的透传&#xff0c;这样才能保证在虚拟机中…

【Linux】Linux工具——gdb

1. gdb 概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许&#xff0c;各位比较喜欢那种图形界面方式的&#xff0c;像VC、BCB等IDE的调试&#xff0c;但如果你是在 UNIX平台下做软件&#xff0c;你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能…