一、概念
老规矩,先看维基百科:Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies.[2] It provides a "pure Java" HTTP web server environment in which Java code can also run. Thus it is a Java web application server, although not a full JEE application server. 有用的似乎就最后一句话,Tomcat是一个Java Web应用服务器,这也是读者们经常读到的答案。但是什么又是Web服务器呢?
所谓Web服务器,就是提供Web服务的服务器。试想这样一个过程::用户在客户端发出请求至Web服务器,Web服务器对其做出响应,返回相应的数据至客户端,即一次HTTP请求-响应(详见HTTP介绍)。有的读者可能会疑惑,Web服务器与我平时写的代码之间有什么关联呢?程序员编写的代码通常是Web应用,Web应用需要置于Web服务器之内,才能一起给用户提供Web服务。因此Web服务器也称为Web容器。
看如下简图:
那么Web服务器到底完成了什么工作呢?在上一篇介绍HTTP的文章中谈到,客户端与服务端之间在请求-响应的过程中,对于HTTP协议的操作是通用的,而这部分通用的处理即是Web服务器完成的,这使得开发者可以更关注Web应用中的业务逻辑。至此,是否对Tomcat有了初步的理解呢?
二、再理解
我们也经常听到这样的描述:Tomcat是一个开源、免费、轻量级的Web服务器,在本文的第一段中提到"not a full JEE application server",这又如何理解呢?JEE是Java Enterprise Edition,通常指Java企业级开发的技术规范总各,包含13项技术规范。由于Tomcat未完全支持全部的规范,因此会称之"not full",同样,这也是它轻量的原因。而像其它的Web服务器如WebLogic则支持全部的规范,因此也比Tomcat更重。(了解即可)
此外,笔者经常提到一句话:理解一个技术,要理解这个技术为什么产生,是解决了当时的什么问题,这样能帮助我们将不断迭代的技术连贯起来。那么Tomcat的产生是基于什么需求呢?在网络服务出现之前,计算机只能浏览编辑本机上的资源,我们肯定是期望能够访问其它计算机上的资源的,于是Web项目与处理HTTP通用操作的Web服务器便应运而生了。
三、快速使用
请查看Tomcat快速使用,以最简单的依赖和代码部署一个Web项目到Tomcat中并在浏览器中访问。