Tomcat Notes: Deployment File

This is a personal study notes of Apache Tomcat. Below are main reference material.

- YouTube Apache Tomcat Full Tutorial,owed by Alpha Brains Courses. https://www.youtube.com/watch?v=rElJIPRw5iM&t=801s



  • 1、Tomcat deployment
    • 1.1、Two modes of deployment
    • 1.2、deployment file structure
      • 1.2.1、Static files
      • 1.2.2、WEB-INF
      • 1.2.3、META-INF
      • 1.2.4、Summary

1、Tomcat deployment

1.1、Two modes of deployment

We know all apps we want to deploy should be placed in webappsfolder. Assuming predsis the app in the following notes.

请添加图片描述
we can see it has predsand preds.war.

Actually predsis the unpacked version of preds.war. They have exactly same content.

it reveals that Tomcat support two modes of deployment:

  • packed: The entire app is packed in a war file, like preds.war.
  • unpacked: A normal folder, unpacked version of preds.war.

So you can have only one of them then execute startup.shor startup.batto get app deployed.


We usually choose packed file to deploy. It’s for portability: Packed file is only one file. It’s easy to copy or transfer unlike a directory to mess around with.



1.2、deployment file structure

1.2.1、Static files

Static files are like .html, .css, .jsp, .jsand so on.

They are under the fisrt level folder. In below example styles.cssand ajax.xhtmlare static files.
在这里插入图片描述

You can also create a subdirectory of your own to place static files. It’s very common like image files placed under preds.war/assets/images/.

1.2.2、WEB-INF

WEB-INFhas three types of files. They are configuration, complied files defined by developer and archived code.

  • Configuration files: Configuration file are under WEB-INF, like web.xmland faces-config.xmlin this example. Default configuration file is web.xml. You can configure web context, welcome page and so on in this file.

Compiled files defined by developers also are placed in WEB-INF, which are under classfolder.

In this example you can see complied .javafiles which are .classfiles are under classfolder.

请添加图片描述


1.2.3、META-INF

It only contains a file called MANIFEST.MFwhich is used to record meta data which is description of the whole .warfile like what the .warfile have and where those files are placed.

Basically it used to make sure everything is in the right place. Just know what is used for is ok.

1.2.4、Summary

在这里插入图片描述

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

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

相关文章

阿里云服务器固定带宽下载和上传速度对照表

阿里云服务器公网带宽上传和下载速度对照表,1M带宽下载速度是128KB/秒,为什么不是1M/秒?阿腾云atengyun.com分享阿里云服务器带宽1M、2M、3M、5M、6M、10M、20M、30M、50M、100M及200M等公网带宽下载和上传速度对照表,附带宽价格表…

BLE Mesh蓝牙组网技术详细解析之Access Layer访问层(六)

目录 一、什么是BLE Mesh Access Layer访问层? 二、Access payload 2.1 Opcode 三、Access layer behavior 3.1 Access layer发送消息的流程 3.2 Access layer接收消息的流程 3.3 Unacknowledged and acknowledged messages 3.3.1 Unacknowledged message …

python3 批量创建zabbix主机

一、简介 此程序是python调用zabbix API 批量创建监控主机的脚本。所有格式参考zabbix 官网API。地址如下: https://www.zabbix.com/documentation/6.0/zh/manual/api/reference二、创建zabbixAPI包 1.config.py 其中Get_token函数是为了获取访问zabbix API所需…

java内存屏障

参考:https://blog.csdn.net/weixin_73077810/article/details/132804522 内存屏障主要用于解决线程的可见性、有序性问题 代码案例: ReentrantLock保证可见性的原理 在 lock.lock() 和 lock.unlock() 时,都会操作 AbstractQueuedSy…

设置gazebo内sdf,urdf文件路径的可能变量

IGN_GAZEBO_RESOURCE_PATH/home/actorsun/ws/install/ros_gz_sim_demos/share 输入printenv |grep -i ros 其中-i 表示忽略大小写

算法训练营Day39(动态规划)

62.不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int uniquePaths(int m, int n) {//1dp数组 m n代表位置&#xff0c;dp[m][n]代表到达这里的途径个数int [][] dp new int[m][n];//3初始化for(int i 0;i<n;i){dp[0][i] 1;}f…

SqueezeNet:通过紧凑架构彻底改变深度学习

一、介绍 在深度学习领域&#xff0c;对效率和性能的追求往往会带来创新的架构。SqueezeNet 是神经网络设计的一项突破&#xff0c;体现了这种追求。本文深入研究了 SqueezeNet 的复杂性&#xff0c;探讨其独特的架构、设计背后的基本原理、应用及其对深度学习领域的影响。 在创…

【Python机器学习】线性模型——用于多分类的线性模型

很多线性分类模型只使用与二分类问题&#xff0c;将二分类算法推广到多分类算法的一种常见方法是“一对其余”方法。在“一对其余”方法中&#xff0c;对每个类别都学习一个二分类模型&#xff0c;将这个类别和其他类别尽量区分&#xff0c;这样就生成了与类别数相同的二分类模…

Spring之循环依赖底层源码(一)

文章目录 一、简介1. 回顾2. 循环依赖3. Bean的生命周期回顾4. 三级缓存5. 解决循环依赖的思路 二、源码分析三、相关问题1. Async情况下的循环依赖解析2. 原型Bean情况下的循环依赖解析3. 构造方法导致的循环依赖解析 一、简介 1. 回顾 前面首先重点分析了Spring Bean的整个…

力扣刷题记录(29)LeetCode:695、1020、130

695. 岛屿的最大面积 这道题和计算岛屿周长类似&#xff0c;在这里dfs的功能就是由一块陆地出发&#xff0c;找出这块陆地所在的岛屿并返回岛屿面积。 class Solution { public:int dfs(vector<vector<int>>& grid,int i,int j){if(i<0||i>grid.size())…

JavaScript获取后端json数据创建表格

怎么在前端获取后端数据生成表格json $.ajax({url: /Resource/GetResource,data: { searchText: searchText },success: function (response) {/*searchResult.innerHTML response;*/console.log(输入框 &#xff1a;, response);// 假设你有一个具有 id 为 "tableContai…

表格封装之 useForm 封装

在日常开发中&#xff0c;后端管理系统中增删改查的开发大多是重复机械式的工作&#xff0c;为了减少解放自己的双手&#xff0c;我们可以对这部分工作的内容进行封装。 一般的增删改查页面&#xff0c;由顶部搜索区&#xff0c;中部表格区&#xff0c;底部功能区&#xff08;…

Unity 面试篇|(二)Unity基础篇 【全面总结 | 持续更新】

目录 1.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期&#xff0c;列出系统自带的几个重要的方法。2.Unity3D中的碰撞器和触发器的区别&#xff1f;3.物体发生碰撞的必要条件&#xff1f;4.简述Unity3D支持的作为脚本的语言的名称&#xff1f;5. .Net与Mono的关系&#x…

镜头选型和计算

3.5 补充知识 一、单像元分辨率&#xff08;单像素精度&#xff09; 单像素精度是表示视觉系统综合精度的指标&#xff0c;表示一个像元对应检测目标的实际物理尺寸&#xff0c;是客户重点关注的 视觉系统参数&#xff1b; 计算公式1&#xff1a;单像素精度视野范围FOV/相机分辨…

Unity 点击对话系统(含Demo)

点击对话系统 可实现点击物体后自动移动到物体附近&#xff0c;然后弹出对话框进行对话。 基于Unity 简单角色对话UI脚本的编写&#xff08;新版UI组件&#xff09;和Unity 关于点击不同物品移动并触发不同事件的结合体&#xff0c;有兴趣可以看一下之前文章。 下边代码为U…

【数据库原理】(11)SQL数据查询功能

基本格式 SELECT [ALL|DISTINCT]<目标列表达式>[,目标列表达式>]... FROM <表名或视图名>[,<表名或视图名>] ... [ WHERE <条件表达式>] [GROUP BY<列名 1>[HAVING <条件表达式>]] [ORDER BY <列名 2>[ASC DESC]];SELECT: 指定要…

QT上位机开发(文本编辑器的界面开发)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 文本编辑器是编程开发中经常使用到的一个软件&#xff0c;比如说notepad就是其中一种。这里说编写一个文本编辑器&#xff0c;并不是说真的要写一个…

Linux 部署 AI 换脸

我使用的系统是 Ubuntu 20.04 文章实操主要分为以下几个部分 1、python 环境安装 2、下载 FaceFusion 上传服务器 3、创建 python 虚拟环境 4、下载 FaceFusion 依赖&#xff08;这里的命令执行时间会很长&#xff0c;够你睡午觉了&#xff09; 5、运行 FaceFusion 6、开…

python基础—网络编程

网络基本协议 TCP协议 UDP协议 二者对比&#xff1a; 连接性&#xff1a; TCP是面向连接的协议&#xff0c;需要在传输数据之前先进行三次握手建立连接。而UDP是无连接的协议&#xff0c;可以直接发送数据&#xff0c;无需事先建立连接。 可靠性&#xff1a; TCP提供了数…

js数组元素的排序

JavaScript 中的数组可以使用多种方法进行排序。下面是一些常见的排序方法&#xff1a; sort() 方法 sort() 方法用于对数组的元素进行排序。默认情况下&#xff0c;sort() 方法将数组元素转换为字符串&#xff0c;然后按照字符的 Unicode 码点进行排序。这可能导致一些不符合…