Tomcat服务器的下载安装以及目录结构介绍

Tomcat服务器的下载安装以及目录结构介绍。

上文我们简单介绍了Java Web的概念和发展,我们说到了Web服务器,其很重要的就是Tomcat服务器。下面我们来简单认识一下Tomcat服务器。

文章目录

  • 1 Tomcat概述
  • 2 Tomcat的下载和启动
  • 3 Tomcat的目录结构
    • 3.1 bin
    • 3.2 conf
      • 3.2.1 server.xml
    • 3.3 lib
    • 3.4 logs
    • 3.5 temp
    • 3.6 webapps
    • 3.7 work

1 Tomcat概述

我们编写Java Web应用,笼统的来说就是在进行Servlet开发(包括目前的SSM、Spring Boot等框架开发的应用都可以这么认为,当然最新的Spring WebFlux已经不依靠Servlet了),而接收、封装客户端请求,以及给客户端做出响应的网络编程部分,都交给Web服务器来实现了,因此我们的“Web应用”,实际上是不能够单独运行起来的,必须运行在Web服务器中才能为用户提供服务。对于Java程序员来说,最熟悉的Web服务器就是tomcat了。

tomcat是一个完全免费的开源的小型web服务器 ,官网地址是http://tomcat.apache.org/,tomcat是一个基于HTTP协议的Web服务器,也就是说tomcat专门用于处理基于HTTP协议的发起的网络请求,而Web应用使用得最多的协议就是HTTP协议了,因此tomcat非常适合作为承载Web应用的容器。

从源码来讲,它就是一个采用Java语言开发的应用程序,它也有自己的main方法(在Bootstrap类中),运行tomcat就会启动tomcat的JVM虚拟机,我们通过start.bat启动tomcat,实际上就是在调用tomcat的启动类的main方法,org.apache.catalina.startup.Bootstrap类就是tomcat的启动类,该类中有唯一的main方法。在tomcat调用main方法启动之后,随后会加载webapp目录下面我们的web应用,解析各种路径,加载服务类,随后即可正常工作!tomcat能够处理请求和响应的原因也是因为它的底层是一个基于Socket开发的的服务端应用程序。

对于内嵌式tomcat,可以很轻松的找到启动类Bootstrap:

Tomcat服务器的下载安装以及目录结构介绍_第1张图片

tomcat还实现了JavaEE的Servlet、JSP规范,因此tomcat又可以看作Servlet容器和JSP容器,这里的“容器”表示能够支持Servlet、JSP的运行。 我们可以将基于Servlet开发的Web应用程序,放到tomcat服务器的webapps目录下面,启动tomcat,我们的项目就运行起来了。实际上是tomcat运行起来了,随后它将默认自动扫描、加载我们放置在webapps(也可以设置其他目录)下面的Web应用,此后tomcat以多线程的模式帮助我们接收、封装HTTP请求为HttpServletRequest对象,并将请求转发到对应路径的Servlet实现中(tomcat帮助加载、实例化我们开发的Servlet为单例,所以需要保证Servlet线程安全),我们知道,这些Servlet中就仅仅是提供了具体的业务逻辑代码,在处理完请求之后,tomcat又帮助我们将HttpServletResponse中数据响应给客户端浏览器,这样,tomcat和Web应用相互配合,就能够为用户提供远程Web服务。

另外,作为一个服务器,tomcat 除了能支持运行 Servlet 和 JSP 这样的动态资源之外, 也能像 Apache/nginx 一样, 支持静态 html、图片、文档的访问,只是性能差一点,在实际的应用中,一般是 Apache/nginx 作为负载均衡服务器和静态资源服务器放在最前端,后面是 tomcat 组成的集群。如果用户请求的是静态资源,nginx 直接搞定,如果是动态资源(如xxx.jsp),nginx 就会按照一定的算法转发的某个 tomcat 上,达到负载均衡的目的。

简而言之: tomcat 是一个接受 http 请求并解析 http 请求并反馈客户端的一个应用程序。

Tomcat服务器的下载安装以及目录结构介绍_第2张图片

下面我们简单的学习tomcat的相关知识,这次不会涉及到源码,适合初学者,后续我们会专门的讲解tomcat的源码,因为tomcat就是Java语言编写的基于Socket的应用程序,并且它的架构还是比较复杂的,但是我们还是完全有机会能够读懂的!

2 Tomcat的下载和启动

首先我们需要明白的是,tomcat作为一个Java程序,因此运行tomcat需要JDK的支持(tomcat会通过JAVA_HOME找到所需要的JDK)。所以我们必须保证要使用tomcat的机器上安装了JDK。

可以到官网http://tomcat.apache.org下载所需的版本。这里我们将会使用tomcat 8版本作为演示和学习的服务器,此版本至少需要JDK8的支持。

Tomcat服务器的下载安装以及目录结构介绍_第3张图片

Tomcat服务器的下载安装以及目录结构介绍_第4张图片

我们下载的是解压版本的tomcat,它的好处是无需安装,解压即可用,并且解压成多少份都可以(只需要修改端口号)。

在解压之后,进入bin目录,双击startup.bat(Windows下)即可启动tomcat服务器,linux下则执行startup.sh。

Tomcat服务器的下载安装以及目录结构介绍_第5张图片

启动日志如下:

Tomcat服务器的下载安装以及目录结构介绍_第6张图片

实际上此时已经启动成功了!但是可以看到控制台出现了乱码(也可能不会),这让人非常不爽。原因很简单,tomcat8默认使用UTF-8编码,而我们的Windows的cmd控制台默认使用GBK编码,所以解决办法有两个,一个是修改tomcat8的日志输出编码为GBK,另一个是修改cmd控制台的编码为UTF-8。

这里我们使用简单的方法,我们进入tomcat的conf目录下找到logging.properties文件,随后打开该文件,找到java.util.logging.ConsoleHandler.encoding = UTF-8这个配置

在这里插入图片描述

将UTF-8改为GBK并保存修改:

在这里插入图片描述

随后重启tomcat,此时我们就能看到正常的日志输出了:

Tomcat服务器的下载安装以及目录结构介绍_第7张图片

3 Tomcat的目录结构

我们来简单的认识一下tomcat的目录结构!解压缩的tomcat8完整的结构如下:

Tomcat服务器的下载安装以及目录结构介绍_第8张图片

3.1 bin

该目录下存放的是二进制(binary)可执行文件,即一系列的批处理命令文件,其中以.sh结尾的文件是linux批处理文件,在linux环境下执行,另一类以.bat结尾的的文件是Windows批处理文件,在Windows环境下执行。

最重要的是startup.sh/startup.bat和shutdown.sh /shutdown.bat这两个批处理文件,startup文件用来启动tomcat,shutdown文件用来停止tomcat;但是需要先配置JAVA_HOME环境变量才能启动tomcat。

实际上,我们打开startup.bat或者shutdown.bat,会发现它们最终都会启动catalina.bat,因此catalina才是真正启动或者终止tomcat的命令文件。在catalina中可以设置JVM参数,比如tomcat的内存大小。而catalina.bat又会调用setclasspath.bat,setclasspath.bat会使用JAVA_HOME环境变量,所以我们必须在启动Tomcat之前把JAVA_HOME配置正确。

Tomcat服务器的下载安装以及目录结构介绍_第9张图片

3.2 conf

这是一个非常重要的配置文件目录,存放着tomcat的各种全局配置信息,重要的配置文件如下:

  1. server.xml: 用于配置整个服务器的参数。例如修改端口号、设置域名或IP、添加虚拟主机、默认加载的项目、请求编码、JNDI资源等功能都是修改该配置文件;
  2. tomcat-users.xml: 存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色权限信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在tomcat主页中进入tomcat Manager页面了;
  3. web.xml: 部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!而这个文件就是用来配置tomcat能够支持的MIME文件类型的。
  4. context.xml: 可以用来配置数据源,或者配置外部项目地址,JNDI资源。
  5. logging.properties: tomcat日志输出的全局配置。
  6. catalina: 该目录下可以设置启动时默认加载的项目。

Tomcat服务器的下载安装以及目录结构介绍_第10张图片

3.2.1 server.xml

tomcat是组件式架构,它的server.xml配置文件中中可以通过标签配置tomcat容器中的不同类型的组件,是tomcat的核心配置文件。

server.xml文件,我们将会在下一篇文章重点讲解。

3.3 lib

Tomcat的类库(library),里面是一大堆Tomcat运行依赖的jar文件。如果需要添加Tomcat运行的jar文件,可以把它放到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,因为这个目录中的jar包对所有项目都可以共享。

常见的包括servlet的jar包,tomcat-dbcp连接池的jar包。

Tomcat服务器的下载安装以及目录结构介绍_第11张图片

3.4 logs

存放tomcat在运行过程中产生的日志文件,可以清理。

  1. catalina: 表示控制台日志。在windows环境中,控制台的输出日志在catalina.xxxx-xx-xx.log文件中,在linux环境中,控制台的输出日志在catalina.out文件中。
  2. commons-daemon: 启动、重启和停止对tomcat的操作日志。
  3. host-manager: tomcat管理页面中的host-manager的操作日志。
  4. localhost: Web应用的内部程序日志。
  5. localhost_access_log: 用户请求Tomcat的访问日志(这个文件可以在conf/server.xml里配置)。

Tomcat服务器的下载安装以及目录结构介绍_第12张图片

3.5 temp

存放Tomcat的临时文件,可以清理。

3.6 webapps

默认的用于存放web项目的目录,可以以文件夹、war包、jar包的形式发布Web应用,当tomcat启动时默认会去webapps目录下解压、加载里面的应用程序,当然也可以配置加载外部应用。

访问某个项目的资源的时候,url默认为http://ip:port/项目目录名/资源路径,项目目录名用来区分不同的Web应用。当然这个路径也可以自己配置,比如配置域名映射。

如果解压tomcat时这个目录下已经存在了项目目录,那么这些项目都是tomcat自带的项目。tomcat8自带的项目如下:

Tomcat服务器的下载安装以及目录结构介绍_第13张图片

ROOT是一个特殊的项目,在访问地址栏中没有给出项目目录名时,对应访问的就是ROOT项目。实际上名为ROOT的项目就是tomcat的默认应用,在访问时不需要加上项目目录名。默认情况下的默认项目就是tomcat的主页:

Tomcat服务器的下载安装以及目录结构介绍_第14张图片

examples是一个示例项目,我们输入http://localhost:8080/examples,即可进入进入示例项目。

3.7 work

存放项目运行时生成的文件,例如JSP编译后的文件。可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

Tomcat服务器的下载安装以及目录结构介绍_第15张图片

如有需要交流,或者文章有误,请直接留言。另外希望点赞、收藏、关注,我将不间断更新各种Java学习博客!

你可能感兴趣的:(Java,EE,javaweb,tomcat,tomcat目录结构)