Tomcat的启动和目录结构

时间:2021-10-12 05:23:53

一、安装Tomcat

首先下载Tomcat,访问Tomcat的官方网站:http://tomcat.apache.org/,选择最新版的下载,这里下载的是:apache-tomcat-8.0.12.zip。

解压缩apache-tomcat-8.0.12.zip,看到tomcat的目录结构:

Tomcat的启动和目录结构

  目录   用途
/bin    存放启动和关闭 Tomcat 的脚本文件。
/conf    存放 Tomcat 服务器的各种配置文件,其中包括 server.xml(Tomcat 的主要配置文件)、web.xml 等等。 
/lib    存放 Tomcat 服务器的和所有web应用程序需要访问的 JAR 文件。 
/logs    存放 Tomcat 的日志文件。
/temp    存放 Tomcat 运行时产生的临时文件。 
/webapps    当发布 Web 应用时程序时,通常把 Web 应用程序的目录及文件放到这个目录下。
/work    Tomcat 将 JSP 生成的Servlet 源文件和字节码文件放到这个文件夹下。


二、运行Tomcat

在Tomcat 的安装目录下的bin子目录里面有一些批处理文件,双击Tomcat 的启动脚本startup.bat 发现一闪而退。

打开windows的命令提示符,进入该startup.bat所在的目录,输入startup,出现如下提示画面:

Tomcat的启动和目录结构

提示没有配置JAVA_HOME或者JRE_HOME的环境变量,在这里配置一下,将JAVA_HOME添加到环境变量里面去:

Tomcat的启动和目录结构

其中的变量值是你电脑中JDK的安装目录。

这时候关闭命令提示符,再运行bin目录下面的startup.bat,这时候可以看到Tomcat正常启动了,如下图所示:

Tomcat的启动和目录结构

这时打开浏览器,在地址栏中输入http:localhost:8080,即可看到Tomcat的主页了。如图所示:

Tomcat的启动和目录结构


这里还有一个问题,如果我们不是在bin目录下运行这个startup.bat文件,如:

Tomcat的启动和目录结构

在别的目录下运行,就会提示没有CATALINA_HOME环境变量配置,这里和之前的JAVA_HOME一样将CATALINA_HOME添加到系统的环境变量中去:

Tomcat的启动和目录结构

这里的变量值是计算机中你的tomcat的安装目录。这是再运行startup.bat即可启动Tomcat。


三、Server.xml文件配置

在conf/server.xml文件中。

<server>

一个server代表了整个容器,Tomcat提供了一个默认的org.apache.catalina接口的实现,用户很少修改这个默认的实现。

port:指定一个端口,这个端口负责监听关闭tomcat的请求。

shutdown:指定向端口发送的命令字符串,通常是“SHUTDOWN”。

<service>

一个Service是一个中间件,存在于一个Server的内部,将一个或者多个Connectors绑定到一个特定的Engine上。默认的实现已经足够用了。是org.apache.catalina.Service接口的一个实现。

name:指定service的名字,通常是”Catalina”。

<Connector>

连接器(Connector)处理与客户端的通信,他负责接收客户请求,以及向客户返回相应结果。一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户 。在Tomcat中,有多个连接器可以使用。

port:指定服务器端要创建的端口号,并使用这个断口监听来自客户端的请求。

protocol:设定监听的协议。

redirectPort:指定当服务器正在处理HTTP请求时收到了一个SSL传输请求后重定向的端口号 。

<Engine>

一个Engine代表一个特定的Service的请求处理的管道。因为一个Service可以有多个Connectors,Engine接收并且处理从这些Connectors过来的所有的请求,并且将结果送回合适的connector并发送给客户端。

Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。

当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理。

Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理。

name:指定Engine的名字,通常是”Catalina”。

defaultHost:指定默认的处理请求的主机名,至少与某个host元素的name属性值是相同的。

<Host>

Host表示一个虚拟主机,一个引擎可以包含多个Host。每个虚拟主机和某个网络域名Domain Name相匹配,每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个Web App对应于一个Context,有一个Context path。当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理。匹配的方法是“最长匹配”,所以一个path==" "的Context将成为该Host的默认Context,所有无法和其它Context的路径名匹配的请求都将最终和该默认Context匹配。

name:指定虚拟主机名字。

debug:指定日志级别。

appBase:存放Web应用程序的基本目录,可以是绝对路径或相对于$CATALINA_HOME的目录,默认是:$CATALINA_HOME/webapps,$CATALINA_HOME指的是Tomcat的安装目录。

unpackWARs:如果为true,则tomcat会自动将WAR文件解压后运行,否则不解压而直接从WAR文件中运行应用程序。

autoDeploy:如果为true,表示Tomcat启动时会自动发布appBase目录下所有的Web应用(包括新加入的Web应用)。

<Context>

一个Context 对应于一个Web应用程序(Web Application),运行在特定的虚拟主机上,一个Web Application由一个或者多个Servlet 组成,Context 在创建的时候将根据配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml载入Servlet类。当Context获得请求时,将在自己的映射表(mapping table)中寻找相匹配的Servlet类。如果找到,则执行该类,获得请求的回应,并返回。

docBase:指定此Web应用的绝对或相对路径,也可以为WAR文件的路径。

path:表示此Web应用程序的url的入口,如为“/hello“,则请求的URL为http://localhost:8080/hello/。

reloadable:这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序。

<Realm>

表示存放用户名,密码及role的数据库.

className:指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口。


四、Tomcat 的管理程序

Tomcat提供了一个管理程序——manager,用于管理部署到Tomcat服务器中的Web应用程序。

下面添加一个用户,打开Tomcat安装目录下的conf\tomcat-users.xml文件,在<tomcat-users>标签里面添加角色:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-gui"/>
<user username="eaton" password="123456" roles="manager-gui"/>
</tomcat-users>
第3、4行为我们添加的内容,记住自己添加的用户名和密码。

接下来启动Tomcat服务器,打开浏览器,在地址栏中输入:http://localhost:8080/。

Tomcat的启动和目录结构

在Tomcat的欢迎页面中点击红色箭头指向的“Manager APP”连接,看到一个登陆的对话框,输入我们刚才在tomcat-users.xml中配置的用户名和密码,单击“确定”按钮,将会看到如下所示页面:

Tomcat的启动和目录结构

在这个页面中可以部署、启动、停止、重新加载web应用程序。

注意到Applications下面有一个/examples链接,单击这个链接进入Tomcat提供的示例程序页面,如下所示:

Tomcat的启动和目录结构

这些例子可供大家学习Servlet时作为参考。