认识Tomcat (一)

news2024/11/29 0:50:51

认识Tomcat (一)

一、服务器

在这里插入图片描述

1.1 服务器简介

​ 硬件服务器的构成与一般的PC比较相似,但是服务器在稳定性、安全性、性能等方面都要求更高,因为CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。

​ 软件服务器(英文名称Server),也称伺服器。指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。

1.2 JavaEE应用服务器(JavaEE Application Server**)**

​ 应用服务器是Java EE规范的具体实现, 可以执行/驱动基于JavaEE平台开发的web项目。绝大部分的应用服务器都是付费产品。

常见的应用服务:

Weblogic(BEA Oracle 收费)

Webshpere(IBM 收费)

JBoss(RedHad 收费)

Geronimo(Apache 免费)

1.3 Web容器(Web Server)

只实现了JavaEE平台下部分技术标准,如Servlet,Jsp,JNDI,

JavaMail。Web容器是开源免费的。

Tomcat(Apache 开源免费)

Jetty(Jetty 开源免费)

二、Tomcat的使用

2.1 Tomcat简介

​ Tomcat服务器是Apache的一个开源免费的Web容器。它实现了JavaEE平台下部分技术规范,属于轻量级应用服务器。

2.2 Tomcat作用

​ 可以在Tomcat中运行我们所编写的Servlet、JSP。

在这里插入图片描述

三、Tomcat的下载与安装

3.1 Tomcat下载

下载地址:http://tomcat.apache.org/

3.2 Tomcat安装

Tomcat 是绿色软件,下载解压之后即可使用。

3.3 配置环境变量

Tomcat是用Java语言开发的Web容器,所以在使用Tomcat时需要在操作系统中正确配置环境变量。

JAVA_HOME:C:\Program Files\Java\jdk1.8.0_171

PATH:%JAVA_HOME%\bin;

CLASS_PATH:%JAVA_HOME%\lib;

3.4 Tomcat启动黑屏直接退出

这是因为下载之后,没有在系统变量中配置环境变量无法启动。配置上面的环境变量即可。

四、Tomcat目录结构与介绍

在这里插入图片描述

4.1 bin

bin目录主要是用来存放tomcat的命令文件,主要有两大类,一类

是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命

令)。

4.2 conf

conf目录主要是用来存放tomcat的一些配置文件。

4.3 lib

lib目录主要用来存放tomcat运行需要加载的jar包。在这个目录中需要注意下面这两个包
在这里插入图片描述

4.4 logs

logs目录用来存放tomcat在运行过程中产生的日志文件。

4.5temp

temp目录用户存放tomcat在运行过程中产生的临时文件。(清空

不会对tomcat运行带来影响)

4.6webapps

webapps目录用来存放应用程序,当tomcat启动时会去加载

webapps目录下的应用程序。可以以文件夹、war包的形式发布应

用。

4.7work

work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后

的文件。

在这里插入图片描述

五、Tomcat基本使用

在这里插入图片描述

在Windows系统下启动 .bat文件,在Linux系统下启动.sh 文件

在这里插入图片描述

Tomcat的启动与关闭需要执行bin目录中的命令脚本。

5.1 Tomcat启动

方式一

运行startup.bat文件。

方式二

catlina.bat start

其中catlina.bat是命令文件,start是启动Tomcat参数。

这个是一串命令需要在终端启动。

5.2 Tomcat关闭

方式一

运行shutdown.bat文件。

方式二

catlina.bat stop

其中catlina.bat是命令文件,stop是关闭Tomcat参数。

这个是一串命令需要在终端启动。

方式三

直接关闭掉控制台窗口。

这种方式关闭可能会关闭不完全,下次启动时候报错。

5.3 访问Tomcat

访问Tomcat的URL格式:

http://ip:port

访问本机Tomcat的URL格式:

http://localhost:8080

5.4 Tomcat配置文件介绍

Tomcat 的配置文件由4个xml组成,分别是 context.xml、web.xml、server.xml、tomcat-users.xml。每个文件都有自己的功能与配置方法。

context.xml

context.xml 是 Tomcat 公用的环境配置。 Tomcat 服务器会定时

去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自

动重新加载这个文件,而不需要重启服务器 。

web.xml

Web应用程序描述文件,都是关于是Web应用程序的配置文件。所

有Web应用的 web.xml 文件的父文件。

server.xml

是 tomcat 服务器的核心配置文件,server.xml的每一个元素都对

应了 tomcat中的一个组件,通过对xml中元素的配置,实现对

tomcat中的各个组件和端口的配置。

tomcat-users.xml

配置访问Tomcat的用户以及角色的配置文件。

在这里插入图片描述

5.5 解决控制台乱码

控制台产生乱码的原因是在Tomcat在输出日志中使用的是UTF-8编

码,而我们中文的Windows操作系统使用的是GBK编码。由于编码

格式不统一,所以出现了乱码。

解决方式:

修改conf目录中的logging.properties文件重新指定的编码方式。

java.util.logging.ConsoleHandler.encoding =GBK

在这里插入图片描述

5.6修改Tomcat监听端口

Tomcat默认监听端口为8080。可以通过修改server.xml文件来改变

Tomcat的监听端口。

在这里插入图片描述

5.6 配置Tomcat Manager

5.6.1 什么是Tomcat Manager

Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署

在Tomcat上的应用进行管理的web应用。默认情况下,Tomcat

Manager是处于禁用状态的。准确的说,Tomcat Manager需要以

用户角色进行登录并授权才能使用相应的功能,不过Tomcat并没有

配置任何默认的用户,因此我们需要先进行用户配置后才能使用

Tomcat Manager。

5.6.2 配置Tomcat Manager的访问用户

Tomcat Manager中没有默认用户,我们需要在tomcat-users.xml

文件配置。Tomcat Manager的用户配置需要配置两个部分:角色

配置、用户名及密码配置。

5.6.3 Tomcat Manager中的角色分类

manager-gui角色:

允许访问HTML GUI和状态页面(即URL路径为/manager/html/*)

manager-script角色:

允许访问文本界面和状态页面(即URL路径为/manager/text/*)

manager-jmx角色:

允许访问JMX代理和状态页面(即URL路径为/manager/jmxproxy/*)

manager- status角色:

仅允许访问状态页面(即URL路径为/manager/status/*)

5.7 配置用户及角色

修改tomcat-users.xml

在这里插入图片描述

5.8 解除访问限制

进入Tomcat的webapps目录下,打开webapps/manager/METAINF/context.xml文件,修改下面这段配置。可以在任意IP下访问Tomcat。

为/manager/jmxproxy/*)

manager- status角色:

仅允许访问状态页面(即URL路径为/manager/status/*)

5.7 配置用户及角色

修改tomcat-users.xml

[外链图片转存中…(img-iWY3JWqj-1707059048553)]

5.8 解除访问限制

进入Tomcat的webapps目录下,打开webapps/manager/METAINF/context.xml文件,修改下面这段配置。可以在任意IP下访问Tomcat。

在这里插入图片描述

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

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

相关文章

Docker 搭建mysql 集群(二)

PXC方案 很明显 PXC方案在任何一个节点写入的数据都会同步到其他节点,数据双向同步的(在任何节点上都可以同时读写) 创建MySQL PXC集群 1 安装PXC镜像 docker pull percona/percona-xtradb-cluster:5.7.21 2 为PXC镜像改名 docker tag pe…

从零开始手写mmo游戏从框架到爆炸(三)— 服务启动接口与网络事件监听器

上一章我们完成了netty服务启动的相关抽象(https://blog.csdn.net/money9sun/article/details/136025471),这一章我们再新增一个全局的服务启动类,方便后续扩展。 服务启动 新增的两个类如下: 定义一个接口IServer …

react native错误记录

第一次运行到安卓失败 Could not find implementation class com.facebook.react.ReactRootProjectPlugin for plugin com.facebook.react.rootproject specified in jar:file:/D:/Android_Studio_Data/.gradle/caches/jars-9/o_3a1fd35320f05989063e7069031b710f/react-nativ…

Linux命令·

debian linux: deb 软件包 deb软件包分为两种,.deb二进制软件包,.dsc源码包 软件包的两种管理工具 1.dpkg 软件包软件的安装包必须存在 不能从镜像点获得安装包 不能检测软件之间的依赖关系 dpkg -i package.deb #安装包 dpkg -r package …

Elasticsearch:使用 Inference API 进行语义搜索

在我之前的文章 “Elastic Search 8.12:让 Lucene 更快,让开发人员更快”,我有提到 Inference API。这些功能的核心部分始终是灵活的第三方模型管理,使客户能够利用当今市场上下载最多的向量数据库及其选择的转换器模型。在今天的…

SpringBoot 登录检验JWT令牌 生成与校验

JWT官网 https://jwt.io/ 引入依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>设置过期时间 LocalDateTime localDateTime LocalDateTime.now().…

uniapp中使用EelementPlus

uniapp的强大是非常震撼的&#xff0c;一套代码可以编写到十几个平台。这个可以在官网上进行查询uni-app官网。主要还是开发小型的软件系统&#xff0c;使用起来非常的方便、快捷、高效。 uniapp中有很多自带的UI&#xff0c;在创建项目的时候&#xff0c;就可以自由选择。而E…

React Native学习记录

一、创建RN项目的时候是空文件夹的问题 1.使用npx react-native init RNDemos初始化项目的时候&#xff0c;会报错&#xff0c;模版错误&#xff0c;然后创建出来一个空的文件夹 2.如果出现这种情况&#xff0c;需要设置npm install -g react-native-cli 3.安装完成以后再次初…

python 多线程编程(一)

文章目录 threading - 基于线程的并行线程对象thread 类thread方法thread 属性例子 锁对象递归锁对象 条件对象 队列Queue对象SimpleQueque 对象例子 最近的工作需要用到多线程提升程序的运行效率&#xff0c;以前一直没有机会进行多线程编程&#xff0c;所以一直没有机会学习p…

QEMU源码全解析 —— 内存虚拟化(2)

接前一篇文章&#xff1a; 本文内容参考&#xff1a; 《趣谈Linux操作系统》 —— 刘超&#xff0c;极客时间 《QEMU/KVM》源码解析与应用 —— 李强&#xff0c;机械工业出版社 QEMU内存管理模型 特此致谢&#xff01; QEMU内存初始化 1. 基本结构 在开始介绍内存初始化…

[Python] 什么是KMeans聚类算法以及scikit-learn中的KMeans使用案例

什么是无监督学习&#xff1f; 无监督学习是机器学习中的一种方法&#xff0c;其主要目的是从无标签的数据集中发现隐藏的模式、结构或者规律。在无监督学习中&#xff0c;算法不依赖于任何先验的标签信息&#xff0c;而是根据数据本身的特征和规律进行学习和推断。无监督学习…

随机图论基础

一&#xff0c;随机图、随机图空间 1&#xff0c;随机图 一个n个点的无向图&#xff0c;最多有sn(n-1)/2条边。 每条边都有一定的概率存在&#xff0c;有一定概率不存在&#xff0c;那么每个图都有一个出现概率。 2&#xff0c;随机图空间 一共有2^s种不同的图&#xff0c…

STM32外部中断原理及应用

对于嵌入式系统开发者而言&#xff0c;STM32系列微控制器是一个强大而灵活的选择&#xff0c;而外部中断作为其中一项重要的功能&#xff0c;为实时响应外部事件提供了关键支持。本文将带领初学者深入理解STM32外部中断的原理和应用&#xff0c;让你能够轻松地在你的项目中使用…

Jvm FullGC 如何排查?

使用场景 我们在使用系统时&#xff0c;有时请求和响应会变得特别慢&#xff0c;系统也变得很卡。 有可能是FullGC的问题&#xff0c;可以逐步地进行排查。 使用jps和top确定进程号pid jps可以列出正在运行的jvm进程&#xff0c;并显示jvm执行主类名称( main()函数所在的类…

[Vue3]父子组件相互传值数据同步

简介 vue3中使用setup语法糖&#xff0c;父子组件之间相互传递数据及数据同步问题 文章目录 简介父传子props传递值 使用v-bind绑定props需要计算toRefcomputed emit传递方法 使用v-on绑定 子传父expose v-model总结 父传子 props传递值 使用v-bind绑定 父组件通过props给子…

第三百零七回

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何在输入框中提示错误"相关的内容&#xff0c;本章回中将介绍如何在输入框中处理光标.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在使用TextField组件作为…

【RT-DETR有效改进】UNetv2提出的一种SDI多层次特征融合模块(细节高效涨点)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本问给大家带来的改进机制是UNetv2提出的一种多层次特征融合模块(SDI)其是一种用于替换Concat操作的模块,SDI模块的主要思想是通过整合编码器生成的层级特征图来增强图像中的语义信息和细节信息。包括皮肤…

远程连接服务器:Ping通但SSH连接失败的解决办法

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言常见问题影响SSH的因素本地影响因素防火墙设置网络配置文件 远程主机影响因素放行…

PyTorch 2.2 中文官方教程(二十)

移动设备 在 iOS 上进行图像分割 DeepLabV3 原文&#xff1a;pytorch.org/tutorials/beginner/deeplabv3_on_ios.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 作者&#xff1a;Jeff Tang 审阅者&#xff1a;Jeremiah Chung 介绍 语义图像分割是一种计算机视…

QCustomplot实现灰度曲线图

从 QCustomplot官网 https://www.qcustomplot.com/index.php/download 下载支持文件。首页有些demo可以进行参考学习。 新建一个Qt工程&#xff0c;将下载得到的qcustomplot.h和qcustomplot.cpp文件加入到当前工程。pro文件中加上 printsupport 在ui界面中&#xff0c;添加一…