如何实现Tomcat部署及优化

news2024/11/16 6:03:30

目录

一、Tomcat概述

Tomcat中的核心组件(用于Java环境)

Tomcat两种优化

Tomcat Web服务

JSP容器(翻译功能)

Servlet处理动态页面

二、Tomcat内部工作流程

三、Tomcat功能组件结构

Connector连接器

Container容器

四个子容器

Tomcat请求过程

四、部署案例

Tomcat服务部署

第一步 导入相关包进行安装

第二步 关闭防火墙和安全机制

第三步 检查版本

第四步 编写配置文件

第五步 刷新脚本文件

第六步 编写Java脚本

第七步 测试Java脚本

 第八步 导入Tomcat包

第九步 解压相关包并优化路径

第十步 启动Tomcat并查看端口

第十一步 用浏览器访问测试

Tomcat虚拟主机配置

第一步 创建网页执行文件

第二步 修改配置文件

第三步 重启一下Tomcat

第四步 创建映射关系

第五步 用浏览器访问测试


一、Tomcat概述

Tomcat中的核心组件(用于Java环境)

① Web容器   #完成Web服务器的功能

② Servlet容器   #名字为Catalina,用于处理Servlet代码

③ Jsp容器    #用于将Jsp动态网页翻译成Servlet代码

Tomcat是一个免费的开放源代码的Web应用服务器,由Apache、Sun和一些公司以及个人共同开发而成,目前比较流行的Web应用服务器

Tomcat处理请求(内部数据流向)

Tomcat两种优化

① Tomcat配置文件优化

② Java虚拟机(JVM)调优

Tomcat Web服务

Web是可以通过HTTP(s)来访问的一个页面 → 文件

Web容器封装了一组文件集中化管理 → 一组组员对象

JSP容器(翻译功能)

index.php  →  PHP服务

index.jsp  →  Tomcat服务(和数据库进行交互,连接后端)JAVA环境

html → nginx服务 (可以直接展示index.php)

动态页面

可以让用户进行交互的一种文本Web的页面(后台进行交互)

index.jsp  →  tomcat用Java环境  →  和数据进行交互

Tomcat是Web应用服务器,也是一个Servlet/JSP容器,Tomcat作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的相应反馈给用户

Servlet处理动态页面

Servlet是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建(Servlet代码格式就是用Jsp容器来处理)

JSP(动态网页开发技术)

实现应用程序的用户界面部分,通过网页表单获取用户输入数据,访问数据库以及其他数据源

二、Tomcat内部工作流程

Web容器(接收响应请求)展示动态页面(index.jsp类型网页文件)

Jsp容器(翻译Java代码成Servlet代码)

Servlet容器(借助于catalina来执行Servlet代码)

动态任务执行的标准格式

Servlet容器中catalina(卡特琳娜)程序/脚本来处理,从JSP容器中翻译JAVA代码后生成的Servlet代码

处理完代码后通过API接口连接APP程序,再通过MySQL数据库查找查询数据,最后原路一层层再反馈给用户结果

Tomcat → 承载JAVA类代码运行的平台应用 → JAVA → 具体的作用

三、Tomcat功能组件结构

Tomcat的核心功能有两个,分别是负责接收和反馈外部请求的连接器Connector

还有一个负责处理请求的容器Container

Connector连接器

负责对外接收和响应请求,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将结果响应反馈给外界

Container容器

负责对内处理业务逻辑,其内部由Engine、Host、Context和Wrapper四个容器组成,用与管理和调用Servlet相关逻辑

四个子容器

Service对外提供的Web服务,主要包含Connector和Container两个核心组件

Tomcat可以管理多个Service,而且各个Service之间相互独立

每个Service会包含一个Container容器,在Container中包含了四个子容器

① Engine引擎,用来管理多个虚拟主机,一个Service最多只能有一个Engine引擎

② Host 代表一个虚拟主机,也可以叫做站点,通过配置Host就可以添加站点

③ Context 代表一个Web应用,包含多个Servlet封装器

④ Wrapper封装器 容器的最底层,每一个Warpper封装中有一个Servlet,负责对象实例的创建、执行和销毁功能

四个容器之间属于父子级的关系

容器由一个引擎可以管理多个虚拟主机,每个虚拟主机可以管理多个Web应用,每个Web应用会有多个Servlet封装器

Tomcat请求过程

① 用户在浏览器中输入网址,请求被发送到本机端口8080,被Connector获取

② Connector把该请求交给它所在的Service的Engine(Container)来处理并且等待Engine回应

③ 请求在Engine、Host、Context和Wrapper这四个容器之间层层调用,最后在Servlet中执行对应的业务逻辑、数据存储等

④ 执行完之后的请求相应在Context、Host、Engine容器之间层层返回,最后交给Connector,并且通过Connector返回给客户端

四、部署案例

Tomcat服务部署

第一步 导入相关包进行安装

第二步 关闭防火墙和安全机制

命令:systemctl stop firewalld

setenforce 0

第三步 检查版本

命令:java -version

第四步 编写配置文件

命令:vim /etc/profile.d/java.sh

第五步 刷新脚本文件

命令:source /etc/profile.d/java.sh

第六步 编写Java脚本

脚本名称自定义即可,这里就拿abc举例

第七步 测试Java脚本

命令:javac abc.java

java abc

 第八步 导入Tomcat包

第九步 解压相关包并优化路径

命令:tar xf  [压缩包名]

第十步 启动Tomcat并查看端口

命令:/usr/local/tomcat/bin/startup.sh

第十一步 用浏览器访问测试

Tomcat虚拟主机配置

第一步 创建网页执行文件

mkdir /usr/local/tomcat/webapps/liu

mkdir /usr/local/tomcat/webapps/fang

echo "this is liu page\!" > /usr/local/tomcat/webapps/liu/index.jsp

echo "this is fang page\!" > /usr/local/tomcat/webapps/fang/index.jsp

第二步 修改配置文件

第三步 重启一下Tomcat

第四步 创建映射关系

第五步 用浏览器访问测试

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

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

相关文章

openlayers controls基础知识

控件是一个可见的小部件,其 DOM 元素位于屏幕上的固定位置。 它们可以涉及用户输入(按钮),或者仅提供信息; 位置是使用 CSS 确定的。 默认情况下,它们放置在 CSS 类名为 ol-overlaycontainer-stopevent 的容…

小白月赛C-方豆子

方豆子 题目描述 阿宁最近对吃豆子感兴趣,阿宁想要用程序输出一下,但是图形化对于阿宁来说太难。因此他决定用字符,并且是方形的模样。 给一个正整数n,输出n级好豆子。 题解:每个豆子都由四个豆子组成&#xff0c…

Vue之计算属性(computed)

文章目录 前言一、计算属性二、实例1.缓存优势计算属性内部的属性,在第一次访问时会读取它的值,然后存入缓存 2.简写简写其实就是当确定计算属性内的属性只读不更改,即只有get函数没有写set函数时简写的方式 3.补充 总结 前言 计算属性 一、…

Odoo16 微信公众号模块开发示例

Odoo16 微信公众号模块开发示例 本模块基于 aiohttp asyncio 进行异步微信公众号接口开发, 仅实现了部分 API 仅供学习参考,更完善的同步接口请参考:wechatpy 或 werobot,可用来替代 模块中的 wechat client。 业务需求 小程序中需要用户…

std::bind的讲解

一、在讲解std::bind之前,我们先来复习下std::function。 std::function 是一个“可调用对象”包装器,是一个类模板,可以容纳除了类成员函数指针之外的所有可调用对象,它可以用统一的方式处理函数、函数对象、函数指针&#xff0…

async创建异步任务

想让线程之间可以有两个数据的交换。之前一直采用的是全局变量互斥锁的方法。到目前为止,线程运行完之后还无法提供一个返回值。 此时引入 future 和 async。 sync为同步的意思,async为异步任务。同步任务前文已经结束过:他指的是两个人协同…

SpringBoot 日志文件:日志的作用?为什么要写日志?

文章目录 🎇前言1.日志长什么样子?2.自定义打印日志2.1 在程序中得到日志对象2.2 使用日志对象打印日志 3.日志级别3.1 日志级别的分类与使用3.2 日志级别有什么用呢?3.3 日志级别的设置 4.日志持久化保存5.更方便的日志输出5.1 添加 lombok …

Celery分布式异步框架

Celery异步任务框架 """ 1)可以不依赖任何服务器,通过自身命令,启动服务(内部支持socket) 2)celery服务为为其他项目服务提供异步解决任务需求的 注:会有两个服务同时运行,一个是项目服务&a…

Android 自定义View和事件分派 图解

Android 自定义View和事件分派 图解_猎羽的博客-CSDN博客https://blog.csdn.net/feather_wch/article/details/131487012

并查集和LRUCache

目录 1. 并查集 1.1原理 1.2实现 1.3应用 1.3.1省份数量 1.3.2等式方程的可满足性 2.LRUCache 1.概念 2.实现 3.JDK中类似LRUCahe的数据结构LinkedHashMap 4.LRU Cache的OJ 1. 并查集 1.1原理 把不同的元素划分到不想交的集合.开始时,每个元素自成一个单元集合,然后…

OSGI-Bundle:概念和入门

OSGI(Open Service gateway initactive)是java动态化模块系统的一系列规范。即一个系统应用上可以有很多可插拔的小应用,整个应用能运行和协调,小应用之间也可以相互交互完成业务需求。 Bundle: bundle 是以 jar 包形式存在的一个模块化物理单元&#x…

Ceph:关于 Ceph 用户认证授权管理的一些笔记

写在前面 准备考试,整理 Ceph 相关笔记博文内容涉及, Ceph 用户管理,认证管理,权限管理 以及相关 Demo理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意&…

antdesginVue a-date-picker(日期时间选择器)禁用当前时间之前的时间,包含时分秒

antdesginVue a-date-picker(日期时间选择器)禁用当前时间之前的时间&#xff0c;包含时分秒 话不多说直接上效果 <a-form-item label"发生时间" name"start_time"><a-date-pickerstyle"width: 100%"allowClearv-model:value"f…

C++模板进阶知识

文章目录 前言模板进阶1.非类型模板参数2.模板的特化2.1概念2.2函数模板特化2.3类模板特化2.3.1 全特化2.3.2 偏特化2.3.3 类模板特化应用示例 3.模板的分离编译3.1 什么是分离编译3.2 模板的分离编译3.3 解决方法 4 模板总结 后记 前言 之前我们讲过模板初阶的知识&#xff0…

Linux 解决root用户被限制连接服务器

Linux 解决root用户被限制连接服务器 1. 问题描述2. 解决问题2.1 方式一&#xff08;忘记root密码的情况&#xff09;2.2 方式二&#xff08;知道root密码的情况&#xff09; 3. 其他 1. 问题描述 使用 root 用户不能链接服务器&#xff0c;密码对&#xff0c;就是连接不上&am…

uniapp:分享一个自定义侧滑样例

首先看html,分为两部分&#xff0c;主体内容部分和功能部分&#xff0c;功能部分在css中定位到主体部分的右边 <view class"section" ref"box_center" touchstart"drawStart" touchmove"drawMove($event)"touchend"drawEnd($…

晨控智能UWB室内定位:工厂智能化的新引擎

晨控智能UWB室内定位&#xff1a;工厂智能化的新引擎 工厂是一个复杂而庞大的环境&#xff0c;通常包括多个车间、设备、人员以及大量的物料和产品。需要实时、准确的定位数据来支持各项运营活动。然而&#xff0c;传统的定位技术无法满足工厂内部的高精度定位需求。而UWB室内…

u-boot的烧写及使用,u-boot-2013.01的移植 6.30

1.将Linux的执行文件放到板子上运行 嵌入式系统 1.嵌入式系统 定制2.硬件&#xff1a;核心芯片底板软件&#xff1a;驱动应用 驱动系统应用&#xff08;并发&#xff0c;网络&#xff0c;文件。。。&#xff09;3.系统&#xff1a;linux 开源 模块化 支持芯片众多 功能…

针对字符串输入之间有空格的问题相关的问题

先说结论&#xff1a; bool flag true;while (cin >> s) {if (flag) {flag false;cout << s.size();} else {cout << , << s.size();}} 即用while&#xff08;cin>>s&#xff09;来输入&#xff0c;一段单词一段单词的来做&#xff08;遇到ci…

第十一章 原理篇:transformer模型入门

说在前面的话&#xff1a; 找工作面试不是特别顺利。进了目标公司的二面&#xff0c;但是一面面试官问的一些“新技术”问题答得不太好&#xff0c;尤其是transformer相关的。这一点确实是自己的问题&#xff0c;在工作后总是面向业务学习&#xff0c;对很多算法都是处于“听说…