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 网络安全的内涵 随着计算机和网络技术的迅猛发展和广泛普及,越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是,支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而࿰…...
Linux 性能调优简单指南
一、性能调优概述 Linux 性能调优是系统运维的核心任务之一,目的是通过资源分配、参数优化和瓶颈消除,提升系统运行效率和稳定性。调优需遵循以下原则: 基于数据驱动:使用监控工具精准定位瓶颈分层逐级分析:从硬件到应用的逐层排查变更可回溯:单变量调整并记录结果场景适…...
第十一章: vue2-3 生命周期
创建 挂载 更新 销毁 四个阶段 > 生命周期函数 生命周期钩子 created mounted 创建vue2 的脚手架: vue create vue2_test v-show"isShow" v-if "isShow" 这里的isShow 表示一个函数 let isShow "true" <tem…...
【算法基础】--前缀和
前缀和 一、一维前缀和示例模板[寻找数组的中心下标 ](https://leetcode.cn/problems/tvdfij/description/)除自身以外的数组乘积和可被k整除的子数组 一、一维前缀和 前缀和就是快速求出数组某一个连续区间内所有元素的和。 示例模板 已知一个数组arr,求前缀和 …...
输入搜索、分组展示选项、下拉选取,el-select 实现:即输入关键字检索,返回分组选项,选取跳转到相应内容页 —— VUE 项目-全局模糊检索
后端数据代码写于下一篇:输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路 【效果图】:分组展示选项 【去界面操作感受一下】—> 便捷简洁的企业官网 【录制效…...
Web入侵实战分析-常见web攻击类应急处置实验2
场景说明 某天运维人员,发现运维的公司站点被黑页,首页标题被篡改,你获得的信息如下: 操作系统:windows server 2008 R2业务:公司官网网站架构:通过phpstudy运行apache mysqlphp开放端口&…...
DeepSeek:AI商业化的新引擎与未来蓝图
摘要 在人工智能迅猛发展的浪潮中,DeepSeek以其卓越的技术实力和高超的商业化能力崭露头角。作为一款现象级AI产品,它不仅在算法性能上位居行业前列,还通过灵活的定制解决方案渗透到金融、医疗、零售等多个领域。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 模块提供的一个字典类,它和普通字典( dict)的主要区别在于 提供了一个默认值,可以避免在访问字典中…...
《论系统需求分析方法》写作心得 - 系统分析师
系统需求分析方法论述 一、项目概述及本人职责 本人曾参与一项企业级客户关系管理系统(CRM)的开发项目,担任系统分析师的角色。该项目旨在为企业提供一个集客户信息管理、销售过程跟踪、客户服务支持于一体的综合管理平台,以提升…...
Jupyter里面的manim编程学习
1.Jupyterlab的使用 因为我之前一直都是使用的vscode进行manim编程的,但是今天看的这个教程使用的是Jupyter,我也很是好奇这个manim在Jupyter这样的交互式下面会生成怎么样的效果,所以今天尝试了jupyter,并且对于两个进行比较和说…...
Python之装饰器二 带参数的装饰器
前言一、带参数的装饰器二、在装饰器里面传入参数总结 前言 暂无 一、带参数的装饰器 我们知道,不带参数的装饰其实就是在函数的头上添加装饰器时放一个名称,这种写法就默认了装饰器函数调的是被装饰函数自己,换句话说就是,大家…...
rk3588/3576板端编译程序无法运行视频推理
图片推理可以,但是视频不行,运行视频推理报错:segment fault. 我遇到的问题原因是ffmpeg安装有问题,可以先在板端运行:ffmpeg -version ffmpeg version 4.2.4-1ubuntu1.0firefly6 Copyright (c) 2000-2020 the FFmpe…...
静态库与动态库区别
生成方式 静态库:生成静态库时,源代码编译后生成目标文件(.o或.obj),然后将这些目标文件打包成一个静态库文件(如:.lib或.a)。 动态库:生成动态库时,源代码编…...
鸿蒙-Canvas-图片滑动验证
文章目录 过程绘制形状方式详细解释定义变量布局整图Canvas需要滑动的形状 需要处理图片的方式处理抠图绘制抠出来的图 总结 群里有朋友问图片滑块验证码怎么做,就是一张图上扣出来一块,然后拖动这一小块完成拼图。 第一个想法就是偷懒一下:直…...
Python应用算法之贪心算法理解和实践
一、什么是贪心算法? 贪心算法(Greedy Algorithm)是一种简单而高效的算法设计思想,其核心思想是:在每一步选择中,都采取当前状态下最优的选择(即“局部最优解”),希望通…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
C++ Saucer 编写Windows桌面应用
文章目录 一、背景二、Saucer 简介核心特性典型应用场景 三、生成自己的项目四、以Win32项目方式构建Win32项目禁用最大化按钮 五、总结 一、背景 使用Saucer框架,开发Windows桌面应用,把一个html页面作为GUI设计放到Saucer里,隐藏掉运行时弹…...
dvwa11——XSS(Reflected)
LOW 分析源码:无过滤 和上一关一样,这一关在输入框内输入,成功回显 <script>alert(relee);</script> MEDIUM 分析源码,是把<script>替换成了空格,但没有禁用大写 改大写即可,注意函数…...
板凳-------Mysql cookbook学习 (十--2)
5.12 模式匹配中的大小写问题 mysql> use cookbook Database changed mysql> select a like A, a regexp A; ------------------------------ | a like A | a regexp A | ------------------------------ | 1 | 1 | --------------------------…...
【Docker 02】Docker 安装
🌈 一、各版本的平台支持情况 ⭐ 1. Server 版本 Server 版本的 Docker 就只有个命令行,没有界面。 Platformx86_64 / amd64arm64 / aarch64arm(32 - bit)s390xCentOs√√Debian√√√Fedora√√Raspbian√RHEL√SLES√Ubuntu√√√√Binaries√√√ …...
Three.js + Vue3 加载GLB模型项目代码详解
本说明结合 src/App.vue 代码,详细解释如何在 Vue3 项目中用 three.js 加载并显示 glb 模型。 1. 依赖与插件导入 import {onMounted, onUnmounted } from vue import * as THREE from three import Stats from stats.js import {OrbitControls } from three/examples/jsm/co…...
分类数据集 - 场景分类数据集下载
数据集介绍:自然场景分类数据集,真实场景高质量图片数据;适用实际项目应用:自然场景下场景分类项目,以及作为通用场景分类数据集场景数据的补充;数据集类别:buildings、forest、glacier、mounta…...
青少年编程与数学 01-011 系统软件简介 08 Windows操作系统
青少年编程与数学 01-011 系统软件简介 08 Windows操作系统 1. Windows操作系统的起源与发展1.1 早期版本(1985-1995)1.2 Windows 9x系列(1995-2000)1.3 Windows NT系列(1993-2001)1.4 Windows XP及以后版…...
本地主机部署开源企业云盘Seafile并实现外部访问
Seafile是一个开源、专业、可靠的云存储平台;解决文件集中存储、共享和跨平台访问等问题。这款软件功能强大,界面简洁、操作方便。 本文将详细的介绍如何利用本地主机部署 Seafile,并结合nat123,实现外网访问本地部署的 Seafile …...
Vue中虚拟DOM的原理与作用
绪论 首先我们先了解,DOM(Document Object Model,文档对象模型) 是浏览器对 HTML/XML 文档的结构化表示,它将文档解析为一个由节点(Node)和对象组成的树形结构(称为 DOM 树…...
