目录


所需软件安装

要想在Tomcat中部署项目前提是先要搭建好Tomcat,搭建Tomcat就离不开以下软件包的安装配置,本次演示使用Linux平台

JDK软件包

JDK是一切java应用程序的基础,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class(类)。JDK是开发java程序的一套东西,tomcat就是开发出来的java程序。

JDK软件包下载地址:​​https://www.oracle.com/technetwork/java/javase/downloads/index.html​

JDK软件包一般分为这几种格式的软件包:*.tar.gz *.exe *.rpm

  .tar.gz:这种软件包只需要解包然后配置环境变量即可,此安装包多数用于Linux系统
.exe :这种是Windows平台的安装包,需先进行正确安装再配置环境变量
.rpm :RPM安装包用于linux平台,需使用yum或rpm命令进行安装,安装后就可以使用,无需配置环境变量

JDK环境变量配置

要想正常使用java命令需要配置以下环境变量,一般只需配置再/etc/profile文件中即可:

  export JAVA_HOME=JDK安装路径      //指定JAVA的家目录
export PATH=$JAVA_HOME/bin:$PATH    //指定JDK命令的搜索目录,即JDK家目录中的bin目录
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar     //指定类搜索目录,一般指定dt.jar和tools.jar这两个jar文件

部署Tomcat

一般下载的Tomcat安装包只需要使用tar解压或者win系统中双击安装、linux rpm包安装即可,无需其他配置;详细的Tomcat部署方法可以访问下面我的博客,可以按照步骤进行简单安装:

Linux平台:​​https://www.cnblogs.com/kuiyaroot/p/11670756.html​

windows平台:​​https://www.cnblogs.com/kuiyaroot/articles/11576437.html​

启动Tomcat

启动和关闭一个程序一般都会有两种方式进行操作:

  第一种就是利用程序自带的*.sh或者*.bat的文件进行操作;
第二种就是编写启动脚本,然后加入系统应用当中,然后使用systemctl或者server进行启动;

使用startup.sh和shutdown.sh这两个文件进行启动

启动Tomcat:

  root@test:~$ cd /opt/apache-tomcat-9.0.26/bin/    //进入Tomcat安装目录下的bin目录  
root@test:/opt/apache-tomcat-9.0.26/bin$ ls    //列出所有文件
bootstrap.jar ciphers.sh daemon.sh setclasspath.bat startup.sh version.bat
catalina.bat commons-daemon.jar digest.bat setclasspath.sh tomcat-juli.jar version.sh
catalina.sh commons-daemon-native.tar.gz digest.sh shutdown.bat tomcat-native.tar.gz
catalina-tasks.xml configtest.bat makebase.bat shutdown.sh tool-wrapper.bat
ciphers.bat configtest.sh makebase.sh startup.bat tool-wrapper.sh
root@test:/opt/apache-tomcat-9.0.26/bin$ ./startup.sh    //执行启动文件
Using CATALINA_BASE: /opt/apache-tomcat-9.0.26
Using CATALINA_HOME: /opt/apache-tomcat-9.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-9.0.26/temp
Using JRE_HOME: /opt/jdk1.8.0_221/
Using CLASSPATH: /opt/apache-tomcat-9.0.26/bin/bootstrap.jar:/opt/apache-tomcat-9.0.26/bin/tomcat-juli.jar
Tomcat started.    //启动成功

验证Tomcat是否启动成功:

  root@test:/opt/apache-tomcat-9.0.26/bin$ ps aux | grep tomcat    //查看相关进程
root 2014 0.2 21.9 2585060 88576 pts/0 Sl 06:35 0:12 /opt/jdk1.8.0_221//bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-9.0.26/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/apache-tomcat-9.0.26/bin/bootstrap.jar:/opt/apache-tomcat-9.0.26/bin/tomcat-juli.jar-Dcatalina.base=/opt/apache-tomcat-9.0.26 -Dcatalina.home=/opt/apache-tomcat-9.0.26 -Djava.io.tmpdir=/opt/apache-tomcat-9.0.26/temp org.apache.catalina.startup.Bootstrap start   
//此输出表示tomcat进程正常运行
root 2393 0.0 0.2 13136 1000 pts/0 S+ 07:52 0:00 grep --color=auto tomcat
root@test:/opt/apache-tomcat-9.0.26/bin$ netstat -anpt | grep 8080    //查看相关端口是否运行,注意:Tomcat默认端口是8080
tcp6 0 0 :::8080 :::* LISTEN 2014/java    //显示LISTEN表示侦听状态

关闭Tomcat:

  root@test:/opt/apache-tomcat-9.0.26/bin$ ./shutdown.sh        //执行关闭文件
Using CATALINA_BASE: /opt/apache-tomcat-9.0.26
Using CATALINA_HOME: /opt/apache-tomcat-9.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-9.0.26/temp
Using JRE_HOME: /opt/jdk1.8.0_221/
Using CLASSPATH: /opt/apache-tomcat-9.0.26/bin/bootstrap.jar:/opt/apache-tomcat-9.0.26/bin/tomcat-juli.jar
root@test:/opt/apache-tomcat-9.0.26/bin$ ps aux | grep tomcat //查看相关进程
root 2433 0.0 0.2 13136 1056 pts/0 S+ 08:01 0:00 grep --color=auto tomcat
root@test:/opt/apache-tomcat-9.0.26/bin$ sudo netstat -anpt | grep 8080 //查看相关端口 

制作系统启动脚本

  //启动脚本内容:     

#!/bin/bash
  # description: Tomcat9 Start Stop Restart    //脚本描述
  # processname: tomcat9        //进程名称
  # chkconfig: 234 20 80        //启动和关闭顺序
  CATALINA_HOME=Tomcat解压路径     //Tomcat安装路径
  case $1 in
   start)
   sh $CATALINA_HOME/bin/startup.sh
   ;;
   stop)
   sh $CATALINA_HOME/bin/shutdown.sh
   ;;
   restart)
   sh $CATALINA_HOME/bin/shutdown.sh
   sh $CATALINA_HOME/bin/startup.sh
   ;;
   *)
   echo 'please use : tomcat {start | stop | restart}'
   ;;
  esac
  exit 0


  //将Tomcat启动脚本文件移动至init.d文件下  root@test:~$ sudo mv tomcat /etc/init.d/  //注意一定要使用root权限j
root@test:/etc/init.d$ sudo chmod o+x tomcat    //设置启动脚本执行权限
root@test:/etc/init.d$ sudo chkconfig --add tomcat    //添加到系统服务
//测试是否可以启动
root@test:/etc/init.d$ service tomcat start    //启动Tomcat
root@test:/etc/init.d$ service tomcat stop    //停止Tomcat
root@test:/etc/init.d$ service tomcat restart //重新启动Tomcat

利用自带的Webapps文件部署项目

Tomcat默认自带有一个Tomcat的页面,其项目Web包就是防止再Tomcat中Webapps里面的ROOT目录中。如图所示:

这是Tomcat自带的管理页面,也是默认的访问的到的页面。Tomcat部署项目的三个方法_Tomcat

这个页面网页代码文件是放置在:Tomcat根目录下webapps的ROOT目录

ROOT目录展示,自带项目包:

  root@test:/opt/apache-tomcat-9.0.26/webapps/ROOT# ls      //列出目录中文件
asf-logo-wide.svg bg-middle.png bg-upper.png index.jsp tomcat.css tomcat.png tomcat.svg
bg-button.png bg-nav.png favicon.ico RELEASE-NOTES.txt tomcat.gif tomcat-power.gif WEB-INF

以此类推,可以得出我们直接把项目包放到webapps目录下就可以直接访问使用了

下面是我写的一个简单的html主页:

<!DOCTYPE html>
  <html>
   <head>
   <meta charset="utf-8">
   <title>避凉闲庭</title>
   </head>  
   <body>
   <h1>这是直接将项目包放到webapps目录的项目</h1>
   <h2>放到这个目录就可以直接访问了呦!!!</h2>
   </body>
   </html>

//进入Webapps目录  
root@test:/opt/apache-tomcat-9.0.26/webapps# pwd
/opt/apache-tomcat-9.0.26/webapps
//创建项目包存放目录  
root@test:/opt/apache-tomcat-9.0.26/webapps# mkdir test
//放置项目包  
 root@test:/opt/apache-tomcat-9.0.26/webapps/test# ls
  index.html \\将自己写的代码放到这个目录就可以进行解析了

//测试访问地址:​​http://服务器IP:8080/test​

下图是我写的html解析出来的内容,页面是难看一丢丢,但是可以表达意思就好了Tomcat部署项目的三个方法_JDK_02

修改Server.xml配置文件进行项目映射

修改Tomcat根目录下面conf/server.xml文件,在HOST标签中添加下面一行内容

   <Context path="" docbase="" reloadable="" debug=""  crosscontext=""  />
  docBase  是指定项目包的存放路径
  path    是指定WEB访问目录的,也就是虚拟目录
  reloadable    是否自动加载项目包中web.xml和class文件,值为:true和fales
  debug    调试模式,等级为0-9
  crosscontext    是否共用一个session,值为true和fales

又到了我写HTML代码的时刻了:

  <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"><title>避凉闲庭</title>
</head>
  <body>
  <h1>这是利用修改server.xml文件实现的</h1>
  <h2>< Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">此标签中添加下面标签</h2>
  <h3><Context path="" docbase="" reloadable="" debug="" crosscontext="" />
  </h3>
  </body>
  </html>

  //进入conf目录
root@test:/opt/apache-tomcat-9.0.26/conf# ls    //列出conf下的所有文件
 Catalina context.xml logging.properties tomcat-users.xsd
 catalina.policy jaspic-providers.xml server.xml web.xml
 catalina.properties jaspic-providers.xsd tomcat-users.xml
//修改server.xml文件  
<Host name="localhost" appBase="webapps"    unpackWARs="true" autoDeploy="true">
  <Context docBase="/opt/test1" path="test1" reloadable="true" />      //添加此行,我把项目包放到了/opt/目录下
 <!-- SingleSignOn valve, share authentication between web applications    Documentation at: /docs/config/valve.html -->
 <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> -->
 <!-- Access log processes all example.    Documentation at: /docs/config/valve.html    Note: The pattern used is equivalent to using pattern="common" -->
 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"    prefix="localhost_access_log" suffix=".txt"    pattern="%h %l %u %t "%r" %s %b" />
 </Host>
/修改完成后需要重新启动Tomcat
root@test:/opt/apache-tomcat-9.0.26/bin# ./shutdown.sh    //关闭Tomcat服务
root@test:/opt/apache-tomcat-9.0.26/bin# ./startup.sh    //启动Tomcat服务

测试访问地址:​​http://服务器IP:8080/test1​

Tomcat部署项目的三个方法_Linux_03

自定义项目配置

在conf/Catalina/localhost文件夹下添加xml文件,默认此文件夹下面没有任何文件

  root@/opt/apache-tomcat-9.0.26/conf/Catalina/localhost$ pwd
 /opt/apache-tomcat-9.0.26/conf/Catalina/localhost    //进入要配置的目录
root@test:/opt/apache-tomcat-9.0.26/conf/Catalina/localhost$ ls
root@test:/opt/apache-tomcat-9.0.26/conf/Catalina/localhost$ //默认此目录为空

此目录为自定义目录,需自行创建*.xml配置文件,配置文件名称就是web访问目录即虚拟目录

  root@test:/opt/apache-tomcat-9.0.26/conf/Catalina/localhost$ touch test2.xml        //创建XML配置文件

配置文件需要输入的内容

   <?xml version='1.0' encoding='utf-8' ?>        //设置版本信息和字符编码
<context path="" docBase="" debug="" privileged="" reloadable="" /> //设置项目存放以及配置信息

下面是简单写的一个HTML代码,充当项目吧!

  <!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>避凉闲庭</title></head>
<body>
<h1>这是自定义设置的xml</h1>
<h2>在新创建的XML文件里面添加下面标签</h2>
<h3> <\?xml version='1.0' encoding='utf-8' ?> <\context path="" docBase="" debug="" privileged="" reloadable="" /></h3>
</body>
</html>

配置文件内容

   root@test:/opt/apache-tomcat-9.0.26/conf/Catalina/localhost# cat test2.xml        //列出文件内容
 <?xml version='1.0' encoding='utf-8' ?>
 <Context docBase="/opt/test" reloadable="true" />

创建完成后需要重新启动Tomcat

  root@test:/opt/apache-tomcat-9.0.26/bin# ./shutdown.sh    //关闭Tomcat服务
root@test:/opt/apache-tomcat-9.0.26/bin# ./startup.sh    //启动Tomcat服务

测试访问地址:http://服务器IP:8080/test2

Tomcat部署项目的三个方法_JDK_04