详解Tomcat!

第一个问题

Tomcat是什么?

Tomcat是应用服务器,区别于硬件(应用服务器和数据服务器等)它是运行在硬件上的软件也叫Web应用服务器。

百度百科是这样解释的:Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

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服务器。目前Tomcat最新版本为9.0。

第二个问题

Tomcat怎么用?

首先你就把它当成一个运行在服务器操作系统上的一个应用软件就好了。既然是应用软件那就必然经历下面几个过程:下载---安装---配置环境变量。经过这样3步,你的Tomcat就搭建好了,以后就可以把自己开发的应用程序部署到Tomcat上运行。那么自己开发的应用程序是不能直接部署到操作系统的,而是部署到Tomcat里,Tomcat实际上就是一个个应用程序的管理者,所以叫它应用服务器,这个服务器提供应用服务。

具体来讲当你在浏览器的网址输入端输入端输入一个URL(统一资源定位)时,经过一个特别 复杂的过程后,浏览器才能将应用服务器返回给它的内容解析成你想要的样子。

 

访问某个网址我们经li了什么

第三个问题

Tomcat这个应用程序的结构是什么样的?换句话说这位大美女有什么特点啊?鼻子高不高?眼睛大不大?身材好不好?不好意思,在程序员眼里,向TOMCAT这样的应用程序实在是太美了,可以当做范本来学习,提高编程的能力,其中蕴含的思想是非常有深度的。

先来看看Tomcat的整体结构:

 

Tom的身体

层次分明,是不是很有美感?

Tomcat中最顶层的容器叫Server,代表整个服务器,Server中包含至少一个Service,用于具体提供服务。Service主要包含两部分:Connector和Container。Connector用于处理连接相关的事情,并提供Socket与request、response的转换,Container用于封装和管理Servlet,以及具体处理request请求。一个Tomcat中只有一个Server,一个Server可以包含多个Service,一个Service只有一个Container,但可以有多个Connectors(因为一个服务可以有多个连接,如同时提供http和https连接,也可以提供相同协议不同端口的连接)。

这是标准技术性描述,不用理解技术术语的前提下完全可以看懂Tomcat是由什么组成的,每个组件的数量是多少,这些说得都非常清楚。

说了半天原来这个美女的外国名字叫:Server,你可以翻译成女仆的。这位人民公仆会“分身术”,所以它可以同时提供很多个Service(服务),比如同时给你洗脚、捶背、泡茶、做美食。牛不牛,这个“分身术”的设定就很牛!然后重点来了,每个Service都包括一个Connector和一个Container.翻译过来就是,每一项服务都需要“预约”,然后把给你服务需要的工具箱(Container)拿出来。

Connector这东西,看起来就是个简单的连接,像极了打电话,你拨号出去输入1234567786等等,移动服务商的设备却经历了一个复杂的过程帮你呼叫那个叫“小丽”的用户。Connector也是一样的,要转变或者翻译给内部的Container。

Connector: 处理连接相关的事情,并提供Socket与request、response的转换; 因为我们的一个请求通过浏览器发出后是通过Socket、TCP/IP、HTTP等完成的,这些内容自己去看一下《网络编程》,应用层、传输层、网络层、链路层、物理层等等,这个过程还是比较复杂的。

Container: 封装和管理Servlet(服务器应用),以及具体处理request请求。

 

结构图

容器装配结构图

上面两幅图Container的结构图和Container容器装配结构图。

Container的子容器Engine、Host、Context、Wrapper是逐层包含的关系,其中Engine是最顶层,每个service最多只能有一个Engine,Engine里面可以有多个Host,每个Host下可以有多个Context,每个Context下可以有多个Wrapper。

4个容器的作用分别是:

□Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine。

□Host:代表一个站点,也可以叫虚拟主机,通过配置Host就可以添加站点。

□Context:代表一个应用程序,对应着平时开发的一套程序,或者一个WEB-INF目录以及下面的web.xml文件。

□Wrapper:每个Wrapper封装着一个Servlet。

Context和Host的区别是Context表示一个应用,比如,默认配置下webapps下的每个目录都是一个应用,其中ROOT目录中存放着主应用,其他目录存放着别的子应用,而整个webapps是一个站点。假如www.excelib.com域名对应着webapps目录所代表的站点,其中的ROOT目录里的应用就是主应用,访问时直接使用域名就可以,而webapps/test目录存放的是test子应用,访问时需要用www.excelib.com/test,每一个应用对应一个Context,所有webapps下的应用都属于www.excelib.com站点,而blog.excelib.com则是另外一个站点,属于另外一个Host。

如果你只是想了解一下汤姆猫基本的“美”,科普到这里已经可以了。如果你想更好地体会它的美,那么到官网下载源码来研究一下吧,那里你会发现一个不一样的世界,欧耶!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat是一个开源的Java Servlet容器,用于执行Java Servlet、JavaServer Pages(JSP)和Java WebSocket技术。它充当Web应用程序的运行环境,可以处理HTTP请求和响应,并将它们发送到相应的Servlet或JSP进行处理。 深入了解Tomcat可以涉及以下几个方面: 1. 架构:Tomcat的架构包括Connector、Container和Servlet。Connector负责处理网络连接,Container负责管理Servlet的生命周期,Servlet则处理具体的请求和响应。 2. 配置文件:Tomcat的配置文件包括server.xml、web.xml等。server.xml配置整个Tomcat服务器的全局设置,web.xml配置特定Web应用程序的设置。 3. 目录结构:Tomcat的目录结构包括bin、conf、lib、logs、webapps等。bin目录包含启动和停止Tomcat的脚本,conf目录包含配置文件,lib目录包含Tomcat所需的库文件,logs目录包含日志文件,webapps目录包含Web应用程序的部署目录。 4. 连接器:Tomcat支持多种连接器,如HTTP连接器(处理HTTP请求)、AJP连接器(用于与Apache等Web服务器进行协作)等。连接器负责接收请求并将其传递给相应的容器进行处理。 5. 部署:Tomcat支持将Web应用程序部署为WAR文件或目录。通过将WAR文件放置在webapps目录中,Tomcat会自动将其部署为可访问的Web应用程序。 6. 高级特性:Tomcat还提供了一些高级特性,如连接池、集群、安全性配置等。连接池可以提高并发性能,集群可以实现负载均衡和故障恢复,安全性配置可以保护Web应用程序免受恶意攻击。 这些是Tomcat的一些基本概念和知识点,深入了解Tomcat可以帮助开发人员更好地理解和使用它作为Web应用程序的运行环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值