tomcat--应用部署

news2025/3/10 18:20:40

tomcat根目录结构

  • Tomcat中默认网站根目录是/usr/local/apache-tomcat-8.5.100/webapps/
  • 在Tomcat的webapps目录中,有个非常特殊的目录ROOT,它就是网站默认根目录。
  • 将eshop解压后的文件放到这个/usr/local/apache-tomcat-8.5.100/webapps/ROOT中。
  • bbs解压后文件都放在/usr/local/apache-tomcat-8.5.100/webapps/forum目录下。
  • /usr/local/apache-tomcat-8.5.100/webapps下面的每个目录都对应一个Web应用,即WebApp

http://localhost/ 对应于eshop的应用WebApp,即/usr/local/apache-tomcat-8.5.100/webapps/ROOT/目录,
http://localhost/docs/ 对应于forum的应用WebApp,即/usr/local/apache-tomcat-8.5.100/webapps/docs/ 

  • 如果同时存在/usr/local/apache-tomcat-8.5.100/webapps/ROOT/forum ,仍以 /usr/local/apache-tomcat-8.5.100/webapps/forum/ 优先生效
  • 每一个虚拟主机都可以使用appBase指令配置自己的站点目录,使用appBase目录下的ROOT目录作为主站目录

案例

[root@localhost webapps]# cat  ROOT/index.html
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>tomcat</title>
</head>
<h1>给孩子一个运维的工作</h1>

JSP WebApp目录结构 

/usr/local/apache-tomcat-8.5.100/webapps下面的每个目录对应的WebApp,可能有以下子目录,但下面子目录是非必须的

主页配置:默认按以下顺序查找主页文件 index.html,index.htm、index.jsp

WEB-INF/:当前目录WebApp的私有资源路径,通常存储当前应用使用的web.xml和context.xml

配置文件

META-INF/:类似于WEB-INF,也是私有资源的配置信息,和WEB-INF/目录一样浏览器无法访问

classes/:类文件,当前webapp需要的类

lib/:当前应用依赖的jar包 

主页配置

 全局配置实现修改默认主页文件

默认情况下 tomcat 会在/usr/local/apache-tomcat-8.5.100/webapps/ROOT/目录下按以下次序查找文件,找到第一个则进行显示

可以通过修改 在/usr/local/apache-tomcat-8.5.100/conf/web.xml 中的下面 <welcome-file-list>标签 内容修改默认页文件

[root@localhost ROOT]# cat index.jsp 
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>tomcat test</title>
</head>
<body>
<h1> Tomcat Website </h1>
<div>On  <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html

WebApp的专用配置文件 

 cp -a ROOT/WEB-INF/  xf/

chown -R tomcat.tomcat webapps/xf/

 

 配置规则

  •  webApp的专有配置优先于系统的全局配置
  • 修改系统的全局配置文件,需要重新启动服务生效
  • 修改 webApp的专有配置,无需重启即可生效

 应用部署实现

WebApp应用的归档格式

  • .war:WebApp打包,类zip格式文件,通常包括一个应用的所有资源,比如jsp,html,配置文件等
  • .jar:EJB类文件的打包压缩类zip格式文件,,包括很多的class文件
  • .rar:资源适配器类打包文件,目前已不常用
  • .ear:企业级WebApp打包,目前已不常用

war格式,部署到Tomcat的webapps目录下,并默认会自动解包展开和部署上线。

部署方式

  • 部署Deploy:将webapp的源文件放置到目标目录,通过web.xml和context.xml文件中配置的路径就可以访问该webapp,通过类加载器加载其特有的类和依赖的类到JVM上,即:最终用户可以通过浏览器访问该应用

自动部署:Tomcat一旦发现多了一个web应用APP.war包,默认会自动把它解压缩,加载并
启动起来

手动部署
冷部署:将webapp放到指定目录,才去启动Tomcat服务
热部署:Tomcat服务不停止,需要依赖manager、ant脚本、tcd(tomcat client
deployer)等工具

  • 反部署undeploy:停止webapp运行,并从JVM上清除已经加载的类,从Tomcat应用目录中移除部署的文件
  • 启动start:是webapp能够访问
  • 停止stop:webapp不能访问,不能提供服务,但是JVM并不清除它
 手动应用部署
部署主页目录下的应用WebApp
[root@localhost apache-tomcat-8.5.100]# cat webapps/ROOT/test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>jsp例子</title>
</head>
<body>
后面的内容是服务器端动态生成字符串,最后拼接在一起
<%
out.println("hello jsp");
%>
<br>
<%=request.getRequestURL()%>
</body>
</html>
 部署一个子目录的应用WebApp

mkdir webapps/xf

cp -p webapps/ROOT/test.jsp webapps/xf/

chown -R tomcat.tomcat webapps/xf/

自动的应用部署war包

制作应用的war包文件

mkdir /data/app

echo "1234567" > /data/app/test.html

cp webapps/ROOT/test.jsp  /data/app/

cd /data/app/

jar cvf /data/app.war *

cp /data/app.war /usr/local/apache-tomcat-8.5.100/webapps/

 

 部署基于JAVA的博客系统 JPress

 准备java包

ln -s webapps/jpress-v4.0.7 webapps/jpress 

 安装数据库

 yum install -y mysql-server         

systemctl enable --now mysqld

 

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

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

相关文章

QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem

QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem&#xff0c;继上一章节讲过qt中如何编译freetype Qt编译和使用freetype矢量字库方法https://blog.csdn.net/wangningyu/article/details/138927379#QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览…

Vitis HLS 学习笔记--资源绑定-使用URAM(1)

目录 1. 简介 2. 代码分析 2.1 存储器代码 2.2 Implementation报告 2.3 存储器类型指定 2.4 存储器初始化 3. 总结 1. 简介 在博文《Vitis HLS 学习笔记--资源绑定-使用URAM-CSDN博客》中&#xff0c;介绍了如何在Vitis HLS环境下设计一个简易的存储器模型。 通过以下…

Spring Boot | SpringBoot 中 自定义 “用户授权管理“ : 自定义“用户访问控制“、自定义“用户登录控制“

目录: 一、SpringBoot 中 自定义 "用户授权管理" ( 总体内容介绍 ) :二、 自定义 "用户访问控制" ( 通过 "HttpSecurity类" 的 authorizeRequests( )方法来实现 "自定义用户访问控制" ) :1.基础项目文件准备2.实现 "自定义身份认…

初识C语言——第二十一天

猜数字小游戏的实现&#xff1a; 学会了之后可以自己制作彩票抽奖&#xff0c;哈哈&#xff01; 代码实现&#xff1a; #include <stdlib.h> #include <time.h>void menu()//无返回值函数 {printf("**************************\n");printf("****…

企业网站开发技术

随着互联网的快速发展&#xff0c;企业网站成为了企业宣传和推广的重要渠道之一。一个好的企业网站不仅可以提升企业的形象&#xff0c;还可以实现在线销售和客户服务等功能。那么&#xff0c;企业网站的开发技术有哪些呢&#xff1f;本文将从前端开发和后端开发两个方面进行讨…

三.使用HashiCorp Vault工具管理数据库

三.ubuntu安装使用HashiCorp Vault工具管理数据库 HashiCorp Vault 是一个基于身份的秘密和加密管理系统。机密是您想要严格控制访问的任何内容,例如 API 加密密钥、密码和证书。Vault 提供由身份验证和授权方法门控的加密服务。使用 Vault 的 UI、CLI 或 HTTP API,可以安全…

废品回收 小程序+APP功能介绍

基于您提供的废品回收应用的开发需求&#xff0c;以下是基于Uniapp&#xff08;用户端和回收员端&#xff09;、Thinkphp5&#xff08;后台&#xff09;、MySQL&#xff08;数据库&#xff09;的综合解决方案的概述。 一、技术栈选择 前端&#xff1a;Uniapp&#xff08;跨平…

51单片机入门:I2C通讯协议

I2C通讯协议 I2C简介 串口通信只能在两个设备之间进行&#xff0c;如果是三个设备相互通讯&#xff0c;那么每个设备需要两组串口&#xff0c;实际上是3组相互独立的串口通信。如果是4个设备相互通信就更加麻烦了&#xff0c;最突出的问题就是线路连接比较复杂。 为了解决这个…

请问空三前启动引擎,提示这个错误是什么情况?

答&#xff1a;在AppData-Local-GEngine目录下找到G3DEngineConfig.ini&#xff0c;检查ServerCheckCMD后面是否存在路径 &#xff0c;正常是为空&#xff0c;异常是为存在路径&#xff0c;需要清空该路径&#xff0c;然后重新启动引擎即可 重建大师是一款专为超大规模实景三维…

Python 提取PDF表格数据并保存到TXT文本或Excel文件

目录 安装Python库 Python提取PDF表格数据并保存到文本文档 Python提取PDF表格数据并保存到Excel文档 PDF文件常用于存储和共享各种类型的文档&#xff0c;这些文档可能包括大量的数据表格。通过提取这些PDF表格数据&#xff0c;我们可以将其导入到Excel、数据库或统计软件等…

基于openEuler22.03 LTS环境的容器项目实训——分布式微服务项目部署

一、说明 本文配置环境为VMware虚拟机&#xff08;4核CPU&#xff0c;8 GB内存&#xff0c;40GB磁盘&#xff09;&#xff0c;OS为openEuler 22.03 LTS &#xff0c;虚拟机要求能联网。 二、安装docker环境 2.1 安装docker相关软件包 [rootnode01 ~]# dnf -y install docker…

PCIE V3.0物理层协议学习笔记

一、说明 PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准&#xff0c;它原来的名称为“3GIO”&#xff0c;是由英特尔在2001年提出的&#xff0c;旨在替代旧的PCI&#xff0c;PCI-X和AGP总线标准。 PCIe属于高速串行点对点双通道高…

Ubuntu 安装 eclipse 的详细过程及工程创建和编译配置

目录 一、安装环境二、下载依赖 java jdk三、下载 eclipse四、安装4.1 java 环境4.2 eclipse 安装4.3 打开 eclipse 五、配置 eclipse5.1 新建 C 工程5.2 工具链 配置5.3 头文件路径5.4 链接库5.5 编译 一、安装环境 Ubuntu 版本&#xff1a;22.04.3 位数&#xff1a;64-bit 二…

其实解决问题的方法很简单

大家好&#xff01;我是编码小哥&#xff0c;欢迎关注&#xff0c;持续分享更多实用的编程经验和开发技巧&#xff0c;共同进步&#xff01; 本例是一个动态数组的例子&#xff0c;实现数据的增加、删除、根据索引修改数值、获取数值。 dynamic_array.c #include "dy…

redis-stack部署概要

第一步&#xff0c;下载redis-stack 下载链接&#xff1a;Downloads - Redis 第二步&#xff0c;redis安装包解压缩 gzip -d redis-stack-server-7.2.0-v10.rhel8.x86_64.tar.gz tar -xvf redis-stack-server-7.2.0-v10.rhel8.x86_64.tar 第三步&#xff0c;编辑etc下的redis…

centos无法联网解决方案(9步完成

1.打开终端&#xff0c;输入 su - root 进入到管理员模式&#xff08;-的前后都有空格哈&#xff09; 切换后&#xff0c;显示的就是root... 2.. &#xff0c;输入命令ip addr 2. 切换当前目录 cd /etc/sysconfig/network-scripts/ 3.输入命令&#xff0c;打开文件 vi /etc…

【C/C++】设计模式——工厂模式:简单工厂、工厂方法、抽象工厂

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

高通QCS6490开发(四):FV01 AI开发板系统烧录

本期主要介绍如何在FV01开发板上烧录镜像 所用硬件有&#xff1a; FV01开发板和type C线 操作步骤如下&#xff1a; 首先连接电源线开机&#xff0c;然后通过Type C线连接FV01开发板和PC&#xff0c;接线如下&#xff1a; 1&#xff09;将设备通过如下命令进入到EDL紧急下载…

C++ 计时器

文章目录 一、简介二、实现代码2.1 windows平台2.2 C标准库 三、实现效果 一、简介 有时候总是会用到一些计时的操作&#xff0c;这里也整理了一些代码&#xff0c;包括C标准库以及window自带的时间计算函数。 二、实现代码 2.1 windows平台 StopWatch.h #ifndef STOP_WATCH_H…

开源的图形化Windows软件安装升级方案:WingetUI

WingetUI&#xff1a;简化数字生活&#xff0c;WingetUI让软件管理轻松便捷- 精选真开源&#xff0c;释放新价值。 概览 WingetUI是在GitHub上开发的一个实用工具&#xff0c;专为Windows用户设计&#xff0c;旨在为常见的命令行包管理工具&#xff08;如Winget、Scoop、Pip、…