tomcat--应用部署

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

 

相关推荐

  1. Spring Boot应用部署 - Tomcat容器替换为Jetty容器

    2024-05-16 08:18:10       32 阅读
  2. Spring Boot应用部署 - Tomcat容器替换为Undertow容器

    2024-05-16 08:18:10       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 08:18:10       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 08:18:10       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 08:18:10       87 阅读
  4. Python语言-面向对象

    2024-05-16 08:18:10       96 阅读

热门阅读

  1. 设计模式:解释器模式

    2024-05-16 08:18:10       32 阅读
  2. 蓝桥杯备战24.危险系数——并查集

    2024-05-16 08:18:10       31 阅读
  3. spark自定义函数实现

    2024-05-16 08:18:10       33 阅读
  4. 入门篇:Kafka基础知识·

    2024-05-16 08:18:10       37 阅读
  5. K-means 算法【python,算法,机器学习】

    2024-05-16 08:18:10       36 阅读
  6. mediasoup源码分析(三)--日志模块

    2024-05-16 08:18:10       28 阅读
  7. [前端|vue] !important 关键字使用说明(笔记)

    2024-05-16 08:18:10       35 阅读
  8. 导出docker中gitlab的数据

    2024-05-16 08:18:10       29 阅读
  9. [linux] bash中的单引号(‘)和双引号(“)

    2024-05-16 08:18:10       28 阅读