【Tomcat】各个版本Tomcat统一简单介绍,安装启动以及与原理简单介绍

作为一个Javaweb学习的小白,每天都在使用Tomcat,这可能是我唯一熟悉的服务器,但却对它不甚了解,真是罪孽深重,今天就来整理一下关于Tomcat服务器的相关知识,加深并巩固对它的学习与理解。

首先呢,我们先来看看它的基础知识与基本使用方法;紧接着我们会一起来看看怎么处理一些遇到的服务器报错问题;最后,我们一起来学习一下它的原理与并看看它的源码。

一,Tomcat的自我介绍

官方文档:

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

Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。 

Tomcat服务器到底是什么 ?

        这个软件用来装载你的javaweb程序,可以称它为web容器,你的jsp/servlet程序需要运行在Web容器上,Web容器有很多种,JBoss、WebLogic等等,Tomcat是其中一种。tomcat是一种web服务器,也可以称作运行在服务器(物理意义上的计算机)上的一种软件包。用来对服务器上的HTML文档提供访问权限控制。
          以上的说法可能太专业化,一时难以理解。其实用通俗的语言来讲,万维网本质上就是“超文本文档”(HTML文档)组成的一个通过超级链接互相访问交互网络。你从甲计算机上的文档A通过超链接访问乙计算机上的文档B,而B必须放在Web服务器(Tomcat)里才能被访问。Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
            与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。
            Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。 

Tomcat服务器干什么用的?

1、是jsp网站的服务器之一,就像asp网站要用到微软的IIS服务器,php网站用apache服务器一样,因为jsp动态网站使用脚本语言等写的,需要有服务器来解释你的语言,服务器就是这个功能。 

2、如果网页是纯html的,浏览器就可以直接解释查看效果,但网页一但是.jsp .asp .php 等的动态网页时浏览器自己就无法解释了,需要上面的服务器。   

tomcat便可以解释jsp等java编写的网站。

这部分的内容说实话,网上很多,不再多说,大家多查一下资料就好。



二,Tomcat服务器的安装与配置

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Linux系统的安装教程:借鉴(https://jingyan.baidu.com/article/6f2f55a1a6c1c0b5b93e6c33.html

Windows系统的安装教程:借鉴(https://www.cnblogs.com/mannixiang/p/6349164.html

Eclipse配置一个Tomcat:https://jingyan.baidu.com/article/3065b3b6efa9d7becff8a4c6.html

完整网络部署:借鉴(https://www.jianshu.com/p/e5741f397c7c


这是Tomcat安装后的文件目录结构,每个文件夹下面都放哪些文件的详细图解。


tomcat根目录在tomcat中叫<CATALINA_HOME>

<CATALINA_HOME>/bin:存放各种平台下启动和关闭Tomcat的脚本文件.其中 有个档是catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如 : SET  JAVA_HOME=C:\j2sdk1.4.2_06 保存后,就配置好tomcat环境了. startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件(当服务器端口号被占用时就点击该文件,参考:https://blog.csdn.net/hu_belif/article/details/80260478.

<CATALINA_HOME>/lib:存放Tomcat运行需要的库文件(JARS); 
<CATALINA_HOME>/logs:存放Tomcat执行时的LOG文件; 
<CATALINA_HOME>/temp: 
<CATALINA_HOME>/webapps:Tomcat的主要Web发布目录(包括应用程序示例); 
<CATALINA_HOME>/work:存放jsp编译后产生的class文件; 

<CATALINA_HOME>/conf:存放不同的配置文件(如:server.xml和web.xml), 如下:

 server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;

 web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;部署描述文件,这个web.xml中描述了一些默认的servlet,部署每个webapp时,都会调用这个文件,配置该web应用的默认servlet。

 tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户  指定角色等将通过编辑此文件实现;

 catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力;

 catalina.properties:Tomcat内部package的定义及访问相关控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此文件的相关设置;

 logging.properties: Tomcat6通过自己内部实现的JAVA日志记录器来记录操作相关的日志,此文件即为日志记录器相关的配置信息,可以用来定义日志记录的组  件级别以及日志文件的存在位置等;

 context.xml:所有host的默认配置信息;



三,Tomcat服务器源码简单解析与基本原理

源码的解析暂时还没有明白,可以借鉴大神的文章:https://blog.csdn.net/beliefer/article/details/51645799

基本原理(请求过程):

    Tomcat Server处理一个HTTP请求的过程:


描述:

1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。 

2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。 

3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。 

4、Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有的Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理)。 

5、path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL PATTERN为*.jsp的Servlet,对应于JspServlet类。 

6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost().执行业务逻辑、数据存储等程序。 

7、Context把执行完之后的HttpServletResponse对象返回给Host。 

8、Host把HttpServletResponse对象返回给Engine。 

9、Engine把HttpServletResponse对象返回Connector。 

10、Connector把HttpServletResponse对象返回给客户Browser。

Tomcat配置虚拟主机:

Tomcat可以通过修改本地虚拟主机和修改本地DNS的方式下,实现访问主流网站:www.baidu.com而跳转到自己配置的界面。


四,Tomcat的错误启动与端口报错等服务器报错问题

https://blog.csdn.net/hu_belif/article/details/80260478

上面的是关于Tomcat服务器端口被占用以及错误启动的详细文章,可以参考借鉴。


猜你喜欢

转载自blog.csdn.net/hu_belif/article/details/80390306