1.1 Tomcat 简介
1.1.1 概述
Tomcat 最初是由 Sun 的软件架构师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由 Sun 贡献给 Apache 软件基金会。由于大部分开源项目 O’Reilly 都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为 Tomcat。而 O’Reilly 出版的介绍 Tomcat 的书籍的封面也被设计成了一个公猫的形象。进而 Tomcat 的 Logo 兼吉祥物也被设计为一只公猫。
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,在一台机器上配置好 Apache 服务器,可利用它响应 HTML 页面的访问请求。实际上 Tomcat 是 Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行 Tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。
Apache 为 HTML 页面服务,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat 和 IIS 等 Web 服务器一样,具有处理 HTML 页面的功能,另外它还是一个 Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。
1.1.2 Tomcat 组件说明
Tomca 的心脏是两个组件:Connector 和 Container(Engine,Host,Context,Wrapper)。一个Container 可以选择多个 Connecter,多个 Connector 和一个 Container 就形成了一个 Service。Service 可以对外提供服务,而 Server 服务器控制整个 Tomcat 的生命周期。
顶级组件 Server
服务器(Server):表示一个正在 JVM 运行的 Tomcat 实例;Server 代表整个 catalina Servlet 容器;包含一个或多个 Service 子容器。
顶级组件 Service
服务(Server) 代表 Tomcat 实例本身,Service 则代表 Tomcat 中一组处理请求,提供服务的组件。包括多个 Connector 和一个 Container。
Connector
Connector 是客户端连接到Tomcat容器的服务点,它为引擎提供协议服务来将引擎与客户端各种协议隔离开来,如 HTTP、HTTPS、AJP 协议。
Container
Container 用于封装和管理 Servlet,以及具体处理 Request 请求;包含 4 大请求处理组件:引擎(engine)、虚拟主机、上下文(context)组件。
其他组件
Tomcat 还有其它重要的组件,如安全组件 security、logger、session、mbeans、naming 等其它组件。这些组件共同为 Connector 和 Container 提供必要的服务。
1.2 Tomcat 的使用
① 下载:点击 Tomcat 下载 , 亦可关注文末公众号回复 Tomcat 获取
② 安装:直接解压即可,注意目录中不要包含中文
③ 启动:bin/startup.bat,双击运行该文件即可,亦可命令行 ./startup.bat
启动
④ 使用浏览器访问:localhost:8080,见到如下页面即启动成功
⑤ 关闭:bin/shutdown.bat,双击运行该文件即可,亦可命令行 ./shutdown.bat
关闭
1.3 常见错误
1.3.1 一闪而过
双击启动后,黑窗口一闪而过,使用命令行启动 tomcat,查看报错信息。这种情况一般是 JAVA_HOME 配置错误导致的,正确配置 JAVA_HOME 就可以解决。
1.3.2 无法创建 Java 虚拟机
这个可能是 jdk 与 tomcat 版本不一致导致的,查找与 jdk 对应 tomcat 的版本再安装尝试一下。
1.3.3 端口占用
① 查看占用端口的程序 netstat -ano | grep 8080
② 强杀进程 taskkill /pid PID /f
其中 /f 表示强制关闭该进程
1.4 Tomcat 配置
1.4.1 环境变量
① 创建系统变量 CATALINA_HOME,变量值为 Tomcat 的解压路径。
② 配置 path,将 %CATALINA_HOME%\bin
、%CATALINA_HOME%\lib
、%CATALINA_HOME%\lib\servlet-api.jar
都配入其中
③ 验证是否配置成功,启动命令行执行 startup.bat
能够启动 tomcat 则配置成功
1.4.2 默认端口修改
在 conf\server.xml
中找到如下配置,修改 port
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />