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

JavaWeb-Tomcat服务器

文章目录

  • Web服务器存在的意义
  • 关于Web服务器软件
  • Tomcat服务器简介
  • 安装Tomcat服务器
  • Tomcat服务器源文件解析
  • 配置Tomcat的环境变量
  • 启动Tomcat服务器
  • 一个最简单的webapp(不涉及Java)

Web服务器存在的意义

我们之前介绍过Web服务器进行通信的原理, 但是我们当时忘记了一点, 服务器上的程序都是通过一种服务器软件来进行管理的, 我们叫做服务器软件, 我们请求资源也是请求服务器上不同软件种的不同的资源, 示意图如下

在这里插入图片描述

关于Web服务器软件

运行在服务器上的Web服务器软件有好多款, 下面是常见的几种

  • Tomcat(Web服务器)
  • Jetty(Web服务器)
  • JBOSS(应用服务器)
  • WebLogic(应用服务器)
  • WebSphere(应用服务器)

web服务器和应用服务器的区别
我们的JavaEE规范一共有13种, 我们的应用服务器实现了全部的JavaEE规划, Web服务器仅仅实现了JavaEE规范中的servlet和jsp, 所以应用服务器其实是包含Web服务器的, 比如JBOSS服务器其实内置了Tomcat服务器

Tomcat服务器简介

Tomcat服务器Apache开源组织开发的一款轻量级的Web服务器, 具有轻量级, 速度快, 免费开源等优点, 而且Tomcat服务器是由纯Java语言开发的(所以运行需要安装JRE, 所以安装JDK是必要的), 而且还要设置JAVA_HOME环境变量, 后面配置要用
tomcat还有另外一个名字:catalina(catalina是美国的一个岛屿,风景秀丽,据说作者是在这个风景秀丽的小岛上开发了一个轻量级的WEB服务器,体积小,运行速度快,因此tomcat又被称为catalina)tomcat的是一只公猫(寓意表示Tomcat服务器是轻巧的,小巧的,果然,体积小,运行速度快,只实现了Servlet+JSP规范)

关于Apache开源组织的官方网址

Apache开源组织官网地址

我们可以找到有大量的开源项目

在这里插入图片描述

安装Tomcat服务器

我们打开Tomcat官网, 找到Tomcat服务器的安装地址, 我们需要安装的是

  • core zip(pgp,sha512): Tomcat服务器的本体
  • source code zip(pgp, sha512): Tomcat服务器的源代码(源码分析)
    在这里插入图片描述

Tomcat服务器源文件解析

我们下载压缩包解压之后就自动安装了Tomcat服务器, 我们简单介绍一下目录
在这里插入图片描述


bin目录

Tomcat命令文件存在的地方, 比如启动Tomcat, 关闭Tomcat

我们关注一个文件startup.bat
bat文件其实就是在window操作系统下的命令的集合文件, 也就是Windows批处理文件, 里面都是dos命令, 而在Linus系统下, .bat是.sh, 因为Linux使用命令的方式, 不是dos命令, 而是shell命令

在这里插入图片描述
在这里插入图片描述

上图代表window的启动命令的集合, 而下图代表linux的启动命令的集合

我们打开这个文件查看相关内容
在这里插入图片描述
大致可以了解, window启动startup.bat的方式, 其实是进一步运行了catalina.bat来完成的

在这里插入图片描述
我们现在打开这个文件查看, 搜索mainclass, 因为Tomcat服务器是Java语言写的, 所以必然存在一个程序的入口, 也就是main函数

在这里插入图片描述
我们在最开始的时候就说, 我们下载了Tomcat的源代码, 现在我们根据上面提供的类的路径找到这个Java源文件
在这里插入图片描述
进一步就可以找到Tomcat服务器启动的入口, 也就是main函数


conf目录

配置文件所在的目录

在这里插入图片描述
这个目录下全是Tomcat服务器的配置文件, 比如我们查看其中一个server.xml, 里面就可以配置端口号相关的信息(默认的端口号是8080)
在这里插入图片描述


lib目录

这个是我们Tomcat服务器程序的核心文件, 里面都是以jar包形式存在的.class字节码文件

在这里插入图片描述
但是我们上面画出来的servlet-api.jar这个不是我们Tomcat服务器的实现, 这是我们JavaEE的规划接口, 真正的Tomcat服务器程序都是基于这个规范来写的(类似JDBC)


剩下的几个文件不是那么重要简单过一下

  • logs: Tomcat服务器的日志目录,Tomcat服务器启动等信息都会在这个目录下生成日志文件,
  • temp:Tomcat股务器的临时目录,存储临时文件。
  • webapps:这个目录当中就是用来存放大量的webapp(webapplication:web应用)
  • work:这个目录是用来存放JSP文件翻译之后的java文件以及编译之后的class文件

关于webapps这个目录, 我们之前就说, 一个Tomcat服务器管理多个web应用程序, 所以这里面其实存储的都是我们的web应用程序

在这里插入图片描述
可以看到webapps目录下有很多的自带的web应用程序

配置Tomcat的环境变量

在配置Tomcat的环境变量之前, 一定要配置JAVA_HOME, 因为startup.bat调用的catalina.bat中需要JAVA_HOME, 没有配置JAVA_HOME的话, 我们的tomcat服务器的环境变量就会配置失效

  • 配置CATALINA_HOME也就是安装Tomcat服务器的地址

在这里插入图片描述

  • Path中配置bin目录的路径

在这里插入图片描述

启动Tomcat服务器

  • 使用startup.bat命令启动Tomcat服务器

在这里插入图片描述
在这里插入图片描述
虽然都是乱码, 但是服务器已经启动成功了

我们通过浏览器来验证
在搜索框搜索http://127.0.0.1:8080
在这里插入图片描述
如果展示上面的页面, 就说明启动成功了
这里为什么会展示这样一个页面呢, 因为我们有webapps默认的…

  • 使用shutdown.bat命令关闭Tomcat

这里我们想说一句, shutdown是window关机的命令, 所以我们不推荐使用这种方式, 我们建议把shutdown.bat文件改名, 比如我们就改为了stop.bat

在这里插入图片描述

一个最简单的webapp(不涉及Java)

上面我们说了, 所有的webapp都存在于webapps这个文件夹中, 所以我们想写一个web应用, 必须在这个文件夹中写(不要多想)

创建一个项目oa, 然后创建一个login.html
在这里插入图片描述
我们在浏览器中请求获取这个资源

http://127.0.0.1:8080/oa/login.html

在这里插入图片描述
结果如上图所示, 这代表我们的Tomcat服务器返回给了用户一个资源文件…

相关文章:

JavaWeb-Tomcat服务器

文章目录 Web服务器存在的意义关于Web服务器软件Tomcat服务器简介安装Tomcat服务器Tomcat服务器源文件解析配置Tomcat的环境变量启动Tomcat服务器一个最简单的webapp(不涉及Java) Web服务器存在的意义 我们之前介绍过Web服务器进行通信的原理, 但是我们当时忘记了一点, 服务器…...

vue语法---样式操作-行内样式

文章目录 直接写死的行内样式v-bind绑定对象(静态样式)对象数组 直接写死的行内样式 <template><div v-bind:style"{color:red}">睡觉</div> </template><script>export default{data() {return {}},methods:{}, mounted(){},} </…...

封装一个echarts的组件

父组件页面 <yyjlchartv-if"showyyjl"chartId"yyjllLine":sourceData"sourceDatayyjl":options"optionsyyjl"></yyjlchart>components: {LineEcharts,yyjlchart: () > import("../yyjlchart"),},data() {re…...

计算机网络安全之一:网络安全概述

1.1 网络安全的内涵 随着计算机和网络技术的迅猛发展和广泛普及&#xff0c;越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是&#xff0c;支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而&#xff0…...

Linux 性能调优简单指南

一、性能调优概述 Linux 性能调优是系统运维的核心任务之一,目的是通过资源分配、参数优化和瓶颈消除,提升系统运行效率和稳定性。调优需遵循以下原则: 基于数据驱动:使用监控工具精准定位瓶颈分层逐级分析:从硬件到应用的逐层排查变更可回溯:单变量调整并记录结果场景适…...

第十一章: vue2-3 生命周期

创建 挂载 更新 销毁 四个阶段 > 生命周期函数 生命周期钩子  created mounted 创建vue2 的脚手架&#xff1a; vue create vue2_test v-show"isShow" v-if "isShow" 这里的isShow 表示一个函数 let isShow "true" <tem…...

【算法基础】--前缀和

前缀和 一、一维前缀和示例模板[寻找数组的中心下标 ](https://leetcode.cn/problems/tvdfij/description/)除自身以外的数组乘积和可被k整除的子数组 一、一维前缀和 前缀和就是快速求出数组某一个连续区间内所有元素的和。 示例模板 已知一个数组arr&#xff0c;求前缀和 …...

输入搜索、分组展示选项、下拉选取,el-select 实现:即输入关键字检索,返回分组选项,选取跳转到相应内容页 —— VUE 项目-全局模糊检索

后端数据代码写于下一篇&#xff1a;输入搜索、分组展示选项、下拉选取&#xff0c;全局跳转页&#xff0c;el-select 实现 —— 后端数据处理代码&#xff0c;抛砖引玉展思路 【效果图】&#xff1a;分组展示选项 【去界面操作感受一下】—> 便捷简洁的企业官网 【录制效…...

Web入侵实战分析-常见web攻击类应急处置实验2

场景说明 某天运维人员&#xff0c;发现运维的公司站点被黑页&#xff0c;首页标题被篡改&#xff0c;你获得的信息如下&#xff1a; 操作系统&#xff1a;windows server 2008 R2业务&#xff1a;公司官网网站架构&#xff1a;通过phpstudy运行apache mysqlphp开放端口&…...

DeepSeek:AI商业化的新引擎与未来蓝图

摘要 在人工智能迅猛发展的浪潮中&#xff0c;DeepSeek以其卓越的技术实力和高超的商业化能力崭露头角。作为一款现象级AI产品&#xff0c;它不仅在算法性能上位居行业前列&#xff0c;还通过灵活的定制解决方案渗透到金融、医疗、零售等多个领域。DeepSeek以创新的商业模式和场…...

从零开始学习PX4源码9(部署px4源码到gitee)

目录 文章目录 目录摘要1.gitee上创建仓库1.1 gitee上创建仓库PX4代码仓库1.2 gitee上创建子仓库2.固件在gitee部署过程2.1下载固件到本地2.2切换本地分支2.3修改.gitmodules内容2.4同步子模块仓库地址2.5同步子模块仓库地址更新(下载)子模块3.一级子模块和二级子模块的映射关…...

wps中zotero插件消失,解决每次都需要重新开问题

参考 查看zotero目录 D:\zotero\integration\word-for-windows 加载项点击 dotm即可 长期解决 把dom 复制到 C:\Users\89735\AppData\Roaming\kingsoft\office6\templates\wps\zh_CN还是每次都需要重新开的话 重新加载一下...

【Python 语法】collections 模块的字典类 defaultdict

默认字典 (defaultdict) 的语法defaultdict 的常见应用场景1. 计数2. 分组3. 嵌套字典 defaultdict 是 Python 中 collections 模块提供的一个字典类&#xff0c;它和普通字典&#xff08; dict&#xff09;的主要区别在于 提供了一个默认值&#xff0c;可以避免在访问字典中…...

《论系统需求分析方法》写作心得 - 系统分析师

系统需求分析方法论述 一、项目概述及本人职责 本人曾参与一项企业级客户关系管理系统&#xff08;CRM&#xff09;的开发项目&#xff0c;担任系统分析师的角色。该项目旨在为企业提供一个集客户信息管理、销售过程跟踪、客户服务支持于一体的综合管理平台&#xff0c;以提升…...

Jupyter里面的manim编程学习

1.Jupyterlab的使用 因为我之前一直都是使用的vscode进行manim编程的&#xff0c;但是今天看的这个教程使用的是Jupyter&#xff0c;我也很是好奇这个manim在Jupyter这样的交互式下面会生成怎么样的效果&#xff0c;所以今天尝试了jupyter&#xff0c;并且对于两个进行比较和说…...

Python之装饰器二 带参数的装饰器

前言一、带参数的装饰器二、在装饰器里面传入参数总结 前言 暂无 一、带参数的装饰器 我们知道&#xff0c;不带参数的装饰其实就是在函数的头上添加装饰器时放一个名称&#xff0c;这种写法就默认了装饰器函数调的是被装饰函数自己&#xff0c;换句话说就是&#xff0c;大家…...

rk3588/3576板端编译程序无法运行视频推理

图片推理可以&#xff0c;但是视频不行&#xff0c;运行视频推理报错&#xff1a;segment fault. 我遇到的问题原因是ffmpeg安装有问题&#xff0c;可以先在板端运行&#xff1a;ffmpeg -version ffmpeg version 4.2.4-1ubuntu1.0firefly6 Copyright (c) 2000-2020 the FFmpe…...

静态库与动态库区别

生成方式 静态库&#xff1a;生成静态库时&#xff0c;源代码编译后生成目标文件&#xff08;.o或.obj&#xff09;&#xff0c;然后将这些目标文件打包成一个静态库文件&#xff08;如&#xff1a;.lib或.a&#xff09;。 动态库&#xff1a;生成动态库时&#xff0c;源代码编…...

鸿蒙-Canvas-图片滑动验证

文章目录 过程绘制形状方式详细解释定义变量布局整图Canvas需要滑动的形状 需要处理图片的方式处理抠图绘制抠出来的图 总结 群里有朋友问图片滑块验证码怎么做&#xff0c;就是一张图上扣出来一块&#xff0c;然后拖动这一小块完成拼图。 第一个想法就是偷懒一下&#xff1a;直…...

Python应用算法之贪心算法理解和实践

一、什么是贪心算法&#xff1f; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种简单而高效的算法设计思想&#xff0c;其核心思想是&#xff1a;在每一步选择中&#xff0c;都采取当前状态下最优的选择&#xff08;即“局部最优解”&#xff09;&#xff0c;希望通…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...