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

HTTP服务器——tomcat的安装和使用

在这里插入图片描述

文章目录

  • 前言
  • 下载tomcat
  • tomcat 文件
    • bin 文件夹
    • conf 文件
    • lib 文件
    • log 文件
    • temp 文件
    • webapps 文件
    • work 目录
  • 如何使用 tomcat

前言

前面我们已经学习了应用层协议 HTTP 协议和 HTTP 的改进版——HTTPS,这些协议是我们在写与服务器相关的代码的时候息息相关的,而在现实开发网站的时候,我们就需要用到 HTTP 服务器,自己手写出来一个服务器是比较麻烦的,所以在咱们Java圈子中有一个现成的比较知名的 HTTP 服务器——tomcat。今天我将为大家分享关于 tomcat 的安装和使用。

下载tomcat

进入官网https://tomcat.apache.org/

在这里插入图片描述
这里我们选择 tomcat8 进行下载,tomcat8 比较稳定。
在这里插入图片描述
在这里插入图片描述
下载完成之后,因为 tomcat 是绿色安全软件,所以下载下来之后不是一个程序,而是一个压缩包,对这个压缩包进行解压缩之后就会得到这样的一个文件目录。

在这里插入图片描述

tomcat 文件

bin 文件夹

Tomcat下的bin文件夹存放的是启动和停止Tomcat服务的脚本文件,是Tomcat服务器的核心部分。

具体来说,bin文件夹下包含了一些用于启动和停止Tomcat服务的可执行文件,例如在Windows系统下的脚本文件.bat和在Linux系统下的脚本文件.sh。这些脚本文件包含了启动和停止Tomcat服务的命令和参数,可以用来启动和停止Tomcat服务器。

此外,bin文件夹下还包含了一些其他的工具和配置文件,例如tomcat-juli.jar、tomcat-util.jar等,这些文件是Tomcat服务器运行所必需的。
在这里插入图片描述
bin 目录下放的就是 tomcat 的一些可执行脚本。

在这里插入图片描述
在这些脚本中,这两个脚本就是 tomcat 的启动脚本。

在这里插入图片描述
.bat 就是Windows上的批处理程序,.sh 是Linux下的 shell 脚本。我这个是 Windows 环境,所以我双击 startup.bat 启动程序。

在这里插入图片描述
tomcat是控制台程序,tomcat 启动之后就会在最后显示出启动的时间。仔细观察还会发现,当启动tomcat 的时候,控制台会出现很多的乱码,这是因为Windows控制使用的字符编码是 GDK ,而 tomcat 使用的则是 utf8,这里不建议大家更改,现在就这样看。

当我们启动成功 tomcat 之后其实是可以进入 tomcat 的欢迎界面的,我们在浏览器搜索栏中输入 127.0.0.1:8080,就可以进入 tomcat 的欢迎界面。(tomcat默认绑定的是我们的 8080 端口和 8005 管理端口)
在这里插入图片描述
如果在这个过程中,大家启动 tomcat 遇到问题了之后,大家是不容易看到哪里出错的,所以就可以使用下面方法来查看哪里出了问题。

打开 CMD,将 tomcat 所在的启动程序拖到 CMD 中。

在这里插入图片描述
在这里插入图片描述
这里就显示环境变量没有配置好,所以我们就需要配置一下这里的 CATALINA_HOME 环境变量。

需要注意的是:tomcat 是Java编写的,所以需要保证我们的电脑上安装了 JDK,tomcat 才能正常使用。

conf 文件

conf 文件中存放的是一些配置文件。一个程序的功能是非常丰富的,而有些人可能用的上这个功能,但是有些人却用不上这个功能,所以就不可能默认给你全部开启,这样程序运行的速度也会变慢,所以就需要按需求开始这些功能,我们平时使用一些程序的时候,往往开启或者关闭某些功能的时候会有专门的选项,但是在这里因为咱们是专业的程序员,所以一般就是通过配置文件来进行设置的。
在这里插入图片描述

tomcat 的配置主要是通过 xml 文件提供的。

lib 文件

Tomcat下的lib文件夹主要用来存放Tomcat服务器运行所需的Java类库。这些类库包括Tomcat本身需要的jar包,也包括部署的应用程序需要的jar包。

在Tomcat的lib文件夹中,可以找到许多常用的Java类库和工具,例如Apache Commons、JavaMail、JSP标准标签库(JSTL)等。这些类库和工具可以帮助开发人员更方便地编写和运行Java应用程序。

在这里插入图片描述

log 文件

Tomcat下的log文件夹用于存放Tomcat服务器运行时的日志文件。这些日志文件记录了Tomcat服务器的启动过程、运行状态、错误信息等重要信息。

在Tomcat的log文件夹中,可以找到各种类型的日志文件,例如catalina.log、tomcat7-stderr.log、tomcat7-stdout.log等。这些日志文件记录了Tomcat服务器的不同方面的信息,例如启动时的JVM参数、操作系统信息、应用程序的运行情况、错误信息等。

通过查看和分析Tomcat的日志文件,可以了解Tomcat服务器的运行状态和问题,帮助管理员更好地维护和管理Tomcat服务器。因此,log文件夹对于Tomcat服务器的监控和维护来说是非常重要的。

在这里插入图片描述

打开文件就可以查看里面的内容,这些文件打开就不会出现乱码的情况了,也就是说前面我们打开 tomcat 控制台的时候出现的乱码,可以在这个文件夹中看到。

temp 文件

Tomcat下的temp文件夹主要是用来存放Tomcat在运行过程中产生的临时文件。这些临时文件包括Tomcat运行时的编译后文件、日志文件等。

一般来说,temp文件夹中的内容可以在Tomcat运行过程中进行修改和更新,但并不影响Tomcat的核心功能和运行。当Tomcat服务器关闭时,temp文件夹中的内容将被清除。

webapps 文件

Tomcat下的webapps文件夹是用于存放应用程序的目录。当Tomcat启动时,它会去加载webapps目录下的应用程序。这些应用程序可以以文件夹、war包、jar包的形式发布。实际上,webapps目录是Tomcat的主要Web发布目录,其中root目录就是默认的项目目录。

在webapps目录中,可以放置各种类型的应用程序,包括静态网页、动态网页、Web服务等等。当用户请求访问这些应用程序时,Tomcat会根据请求的URL路径来查找并返回相应的应用程序内容。

在这里插入图片描述

我们使用 tomcat 作为 HTTP 服务器完成的网站的前后端代码都要处于这个文件夹下。

work 目录

Tomcat下的work文件夹是用于存储Tomcat运行时生成的临时文件和缓存文件的目录。

具体来说,work目录主要用于存储Tomcat运行时生成的临时文件。例如,当应用程序在Tomcat中运行时,Tomcat会将JSP文件编译成相应的Java代码,并将编译后的Java代码存储在work目录中,这些编译后的Java代码将被JVM加载并执行。

此外,work目录还用于缓存Servlet类。在Tomcat启动过程中,它会扫描所有WEB应用程序,并为每个Servlet生成相应的Servlet类,这些生成的Servlet类将被存储在work目录中,以便在需要时加载和执行,这样可以提高应用程序的运行效率。

在这里插入图片描述

如何使用 tomcat

前面我们说了 webapps 下存放的都是网站相关的前后端代码,所以我们写网站的时候就需要在该文件夹下创建项目。

在这里插入图片描述
在这里插入图片描述
用 VScode 打开这个文件。并且写一个简单的 HTML 代码。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>hello java
</body>
</html>

保存之后,我们就可以在浏览器的搜索中输入 URL 通过 tomcat 打开这个文件。

在这里插入图片描述
这个 URL 127.0.0.1就是环回 IP ,表示我们自己的电脑,8080是 tomcat 的端口号,表示访问这个程序,然后 java/hello.html 就是我们需要打开的文件的具体路径。

而如果我们直接双击这个文件的话,就相当于显示的是这个文件中的内容,这个文件只能我们本地自己访问,别人是不能访问到这个文件的,如果我们用 URL 的形式访问的话,那么当我们把这个程序放在公网上的话,别人就能访问到我们的这个网站。
在这里插入图片描述

注意:访问tomcat的时候,需要保证tomcat处于运行状态,也就是startup.bat或者startup.sh可执行程序要是运行状态。

相关文章:

HTTP服务器——tomcat的安装和使用

文章目录 前言下载tomcattomcat 文件bin 文件夹conf 文件lib 文件log 文件temp 文件webapps 文件work 目录 如何使用 tomcat 前言 前面我们已经学习了应用层协议 HTTP 协议和 HTTP 的改进版——HTTPS&#xff0c;这些协议是我们在写与服务器相关的代码的时候息息相关的&#x…...

代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和

LeetCode T1143 最长公共子序列 题目链接:1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 动规五部曲分析 1.确定dp数组的含义 这里dp数组的含义是结尾分别为i-1,j-1的text1和text2的最长公共子序列长度 至于为什么是i-1,j-1我之前已经说过了,这里再…...

写了个监控 ElasticSearch 进程异常的脚本!

服务器配置免密钥环境准备&#xff1a; 配置免密钥前&#xff0c;需要在服务器的 hosts 文件中配置目标主机名称与 IP 对应关系。 vim /etc/hosts IP1 hostname1 IP2 hostname2 ...... 将 mianmiyaojiaoben.zip 安装包解压在当前目录下 cd /usr/local/jiaoben unzip mianmi…...

第三篇 基于JSP 技术的网上购书系统—— 数据库系统设计(网上商城、仿淘宝、当当、亚马逊)

目录 1.逻辑关系设计 2.物理设计 2.1管理员表 2.2留言表 2.3会员登录表 2.4会员表 2.5订单表 2.6订单商品表 2.7产品表 2.8产品货架表 2.9收藏表 2.10类别表 2.11新闻表 数据库系统是用来保存数据的软件系统&#xff0c;当今比较流行的数据库系统&#xff0c;如 MS…...

电脑检测温度软件有哪些?

环境&#xff1a; Win10 专业版 问题描述&#xff1a; 电脑检测温度软件有哪些&#xff1f; 解决方案&#xff1a; 有很多电脑检测温度的软件可供选择&#xff0c;以下是一些常用的电脑温度监测工具&#xff1a; HWMonitor&#xff1a;一款免费的硬件监控软件&#xff0…...

设计模式 -- 单例模式(Singleton Pattern)

单例模式&#xff1a;最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式…...

ubuntu给终端加代理服务器

ubuntu给终端加代理 访问google.com 是否可以访问通 curl https://www.google.com如果访问不通说明代理服务器没有配置好。 使用 gedit ~/.bashrc 打开网络配置 gedit ~/.bashrc找到文章的最后添加代理 export http_proxyhttp://127.0.0.1:7890 export https_proxyhttp://…...

centos 6.10 安装 readline 6.2.0

下载地址 解压文件 cd readline-6.2 ./configure -prefix /usr/local/readline-6.2 make && make install安装完成...

IDEA 2023搭建 SpringMVC +FreeMarker+JDBC

1.IDEA的版本&#xff0c;目前最新是2023&#xff0c;要选择旗舰版。笔者曾选择社区版&#xff0c;发现少了很多功能。只能重新安装。 2.安装好以后的第1件事&#xff0c;是设置Maven&#xff0c;并将下载地址改为淘定站&#xff0c;参照这篇一次包会——最新IDEA配置Maven指南…...

RabbitMQ传统数据持久化和Lazy queue的区别

问题引出&#xff1a; 在了解这个问题前我们需要一些前置知识&#xff1a; 关于MQ可靠性&#xff0c;在默认情况下&#xff0c;RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟。这样会导致两个问题&#xff1a; 一旦MQ宕机&#xff0c;内存中的信息会丢失 内存空…...

docker部署lnmp环境

文章目录 前期准备&#xff1a;一、部署mysql1.1 获取 Mysql 5.7.22 镜像1.2 启动mysql容器 二、部署php2.1 获取php 7.2镜像2.2 启动php 容器2.3 php的扩展安装 三、部署nginx3.1 获取nginx:1.14镜像3.2 启动nginx容器3.3 编写nginx虚拟主机配置文件&#xff0c;使其支持php3.…...

数据结构 | 带头双向循环链表专题

数据结构 | 带头双向循环链表专题 前言 前面我们学了单链表&#xff0c;我们这次来看一个专题带头的双向循环链表~~ 文章目录 数据结构 | 带头双向循环链表专题前言带头双向循环链表的结构实现双向链表头文件的定义创建节点哨兵位初始化尾插尾删头插头删打印查找指定位置前插入…...

Redis使用Pipeline(管道)批量处理

Redis 批量处理 在开发中&#xff0c;有时需要对Redis 进行大批量的处理。 比如Redis批量查询多个Hash。如果是在for循环中逐个查询&#xff0c;那性能会很差。 这时&#xff0c;可以使用 Pipeline (管道)。 Pipeline (管道) Pipeline (管道) 可以一次性发送多条命令并在执…...

Linux中at命令添加一次性任务

1、工作原理 功能&#xff1a;在某个时间点&#xff0c;执行一次命令。 特点&#xff1a;任务是用户隔离的。 条件&#xff1a;必须要保证atd进程存在。 ps -ef |grep atd 原理&#xff1a;atd进程循环遍历队列里的任务&#xff0c;有任务&#xff0c;且到达执行时间&#xff…...

交换机基础知识之安全配置

交换机在网络基础设施中扮演着重要角色&#xff0c;它促进了设备之间数据包的流动。正因此&#xff0c;采取适当的安全措施来保护网络免受未经授权的访问和潜在攻击至关重要。本文将全面解读交换机基础安全配置知识&#xff0c;并提供实践方案&#xff0c;以保证安全的网络环境…...

Netty入门指南之Reactor模型

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Netty应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言单线程…...

Ubuntu20.04软件安装顺序

目录 0.网卡驱动1. sogoupinyin2. terminator3.1zsh3.2升级Cmake&#xff08;有些后面的软件需要高版本Cmake&#xff09;4.显卡驱动(在cuda之前)5.CUDA与cudnn,TensorRT6.OpenCV(在ROS之前)6.1先安装各种依赖6.2安装Ceres-1.14.06.3安装Pangolin6.4安装Sophus6.5安装VTK6.5编译…...

适配器模式 ( Adapter Pattern )(6)

适配器模式 ( Adapter Pattern ) 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁 适配器模式涉及到一个单一的类&#xff0c;该类负责加入独立的或不兼容的接口功能 举个真实的例子&#xff0c;读卡器是作为内存卡和笔记本之间的适配器…...

JAVA G1垃圾收集器介绍

为解决CMS算法产生空间碎片和其它一系列的问题缺陷&#xff0c;HotSpot提供了另外一种垃圾回收策略&#xff0c;G1&#xff08;Garbage First&#xff09;算法&#xff0c;通过参数-XX:UseG1GC来启用&#xff0c;该算法在JDK 7u4版本被正式推出&#xff0c;官网对此描述如下&am…...

十方影视后期“领进门”,成长与成就还得靠自身

在这个充满视觉冲击的时代&#xff0c;影视后期制作已经成为了一种炙手可热的艺术形式。而在这个领域&#xff0c;Adobe After Effects&#xff08;AE&#xff09;这款软件无疑是王者之一。十方影视后期作为十方教育科技旗下的艺术设计学科&#xff0c;不仅培养了数万名优秀的后…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...