Tomcat基础
Tomcat的启动和停止
在官网下载解压后,通过命令启动和关闭Tomcat
启动命令
sudo sh startup.sh
or
sudo ./startup.sh start
关闭命令
sudo sh shutdown.sh
or
sudo ./shutdown.sh stop
执行过程中,可能会报以下错误,需要授权
oyty-mbp:bin oyty$ sudo sh startup.sh
Password:
Cannot find ./catalina.sh
The file is absent or does not have execute permission
This file is needed to run this program
授权:
sudo chmod 755 catalina.sh
再次启动即可。
oyty-mbp:bin oyty$ sudo sh startup.sh
Using CATALINA_BASE: /Users/oyty/Documents/tomcat
Using CATALINA_HOME: /Users/oyty/Documents/tomcat
Using CATALINA_TMPDIR: /Users/oyty/Documents/tomcat/temp
Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
Using CLASSPATH: /Users/oyty/Documents/tomcat/bin/bootstrap.jar:/Users/oyty/Documents/tomcat/bin/tomcat-juli.jar
Tomcat started.
Tomcat启动成功,浏览器输入localhost:8080

验证ok!
设置Web站点的根目录
默认ROOT目录
<Tomcat 主目录>/webapps/ROOT
会自动映射为Web站点的虚拟根目录,由于一个Web站点只有一个根目录,所以可以直接将ROOT作为根目录,在建立我们自己的站点时,可以将ROOT目录下的内容替换为我们自己要发布的内容。
修改<Tomcat 主目录>/conf/server.xml配置文件
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/Users/oyty/Documents/webtest/" debug="0" reloadable="true"/>
</Host>
在Host节点中添加Context节点,docBase指向的就是你本地文件系统中需要映射为web根目录的目录。
修改server.xml文件后,需要重新Tomcat生效。
一旦一个文件目录映射为web站点的根目录,它的子目录也可以作为web站点的子目录进行访问。
设置web站点的虚拟子目录
在上面的内容中,我们通过在Host
标签下添加Context
标签设置了web站点的根目录,一个Host
标签表示一个web站点,一个Context
标签表示一个虚拟web目录,一个web站点下可以有多个虚拟web目录,所以可以配置多个Context
标签。
<Context path="" docBase="/Users/oyty/Documents/webtest/" debug="0" reloadable="true"/>
path为空表示设置为根目录。
<Context path="/virtual/subpath" docBase="/Users/oyty/Documents/webtest/book" debug="0" reloadable="true"/>
上面配置设置了一个虚拟web子目录,名称为/virtual/subpath
,对应的本地文件系统路径为/Users/oyty/Documents/webtest/book
,虚拟web目录和本地文件系统目录没有对应关系,两者可以不一致。
war文件发布
一个虚拟目录就是一个独立的web应用程序。为了便于web应用程序的发布,通常将一个web应用程序所对应的整个目录打包成一个jar格式的压缩文件,这个文件称之为war(Web Application Archive)文件。为了见名知意,war文件通常以.war
作为扩展名,但它实际上就是一个jar文件。在上面的虚拟站点配置中,对应的本地文件系统目录可以直接为war文件的地址。
将web目录打包成war文件
-
进入到web应用程序根目录对应的本地文件系统目录
/Users/oyty/Documents/webtest
-
执行下面命令
jar -cvf mywebwar.war .
.
表示当前目录,上面命令表示将webtest
目录中的所有内容压缩到mywebwar.war
文件中,但不包含webtest
目录本身。
- 这样将mywebwar.war文件丢到你需要映射为web根目录的文件夹中即可。