精华内容
下载资源
问答
  • tomcat作用及原理
    千次阅读
    2019-06-21 14:53:39

    什么是tomcat?

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

    Tomcat提供了一个Jasper编译器用以将JSP编译成对应的Servlet。
    Tomcat的Servlet引擎通常与Apache或者其他Web服务器一起工作。除了用于开发过程中的调试以及那些对速度和事务处理只有很小要求的用户,很少会将Tomcat单独作为Web服务器。但随着版本的更新,正有越来越多的用户将其单独作为Web服务器用以那些对速度和可靠性有较高要求的环境中。

    ApacheTomcat®软件是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket技术的开源实现。

    原文:https://blog.csdn.net/assassinsshadow/article/details/78108069

    tomcat作用是什么?

    1、Tomcat是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
      2、当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
      3、诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。
      4、另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
      5、不过,Tomcat处理静态HTML的能力不如Apache服务器。

    更多相关内容
  • tomcat的工作原理以及简介

    千次阅读 2020-07-13 21:11:02
    它的结构比较复杂,但是又比较模块化,所以只要我们找到了最核心的模块,对于tomcat的整体架构和工作原理就很好理解了。Connector(连接器)组件负责生成请求对象和响应对象的,Tomcat默认为HttpConnector,负责根据...

    Tomcat简介

    Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器,
    1.Tomcat是运行在JVM中的一个进程。它定义为【中间件】,顾名思义,是一个在Java项目与JVM之间的中间容器。

    2.Web项目的本质,是一大堆的资源文件和方法。Web项目没有入口方法(main方法),,意味着Web项目中的方法不会自动运行起来。

    3.Web项目部署进Tomcat的webapp中的目的是很明确的,那就是希望Tomcat去调用
    写好的方法去为客户端返回需要的资源和数据。
    4. Tomcat可以运行起来,并调用写好的方法。那么,Tomcat一定有一个main方法。
    5. 对于Tomcat而言,它并不知道我们会有什么样的方法,这些都只是在项目被部署进webapp下后才确定的,由此分析,必然用到了Java的反射来实现类的动态加载、实例化、获取方法、调用方法。但是我们部署到Tomcat的中的Web项目必须是按照规定好的接口来进行编写,以便进行调用

    6.Tomcat如何确定调用什么方法呢。这取却于客户端的请求,http://127.0.0.1:8080/JayKing.Tomcat.Study/index.java?show这样的一个请求,通过http协议,在浏览器发往本机的8080端口,携带的参数show方法,包含此方法的路径为JayKing.Tomcat.Study,文件名为:index.java。

    自从JSP发布之后,推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet, 这样Tomcat就诞生了。Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。Tomcat与Apache的组合相当完美。
    在这里插入图片描述它的结构比较复杂,但是又比较模块化,所以只要我们找到了最核心的模块,对于tomcat的整体架构和工作原理就很好理解了。Connector(连接器)组件负责生成请求对象和响应对象的,Tomcat默认为HttpConnector,负责根据收到的Http请求报文生成Request对象和Response对象,并把这两个对象传递给Container,然后根据Response中的内容生成相应的HTTP报文。

    Container是容器的父接口,所有子容器都必须实现这个接口,简单来说就是服务器部署的项目是运行在Container中的。Container里面的项目获取到Connector传递过来对应的的Request对象和Response对象进行相应的操作。

    Connector可以根据不同的的设计和应用场景进行替换,而一个Container可以对应多个Connector。多个Connector和一个Container就形成了一个Service,而Service可以对外提供服务。

    在这里插入图片描述
    而service由server提供生存环境并控制其生命周期,
    在这里插入图片描述

    假设有一个请求http://localhost:8080/test/index.jsp 我们梳理一下流程

    请求先发送到本机端口8080,然后被在那里侦听的Coyote HTTP/1.1 Connector获得;
    2. Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应;

    1. Engine获得请求localhost:8080/test/index.jsp,匹配它所有虚拟主机Host;

    2. Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机);

    3. localhost Host获得请求/test/index.jsp,匹配它所拥有的所有Context;

    4. Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为""的Context去处理);

    5. path="/test"的Context获得请求/index.jsp,在它的mapping table中寻找对应的servlet;

    6. Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类;

    7. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法;

    8. Context把执行完了之后的HttpServletResponse对象返回给Host;

    9. Host把HttpServletResponse对象返回给Engine;

    10. Engine把HttpServletResponse对象返回给Connector;

    11. Connector把HttpServletResponse对象返回给客户browser;
      在这里插入图片描述
      上面我们知道了流程,但是connector是如何接受请求?又如何封装成Request和Response对象的呢?

    connector结构
    Connector就是使用ProtocolHandler来处理请求的,不同的ProtocolHandler代表不同的连接类型,比如我们之前说到的Http11Protocol使用的是普通Socket来连接的,Http11NioProtocol使用的是NioSocket来连接的

    可以看到ProtocolHandler由包含了三个部件:Endpoint、Processor、Adapter

    Endpoint用来处理底层Socket的网络连接,由于是处理底层的Socket网络连接,因此Endpoint是用来实现TCP/IP协议的,

    Processor用于将Endpoint接收到的Socket封装成Request,用来实现HTTP协议的

    Adapter用于将Request交给Container进行具体的处理,用来将请求适配到Servlet容器进行具体的处理

    Endpoint的抽象实现类AbstractEndpoint里面定义的Acceptor和AsyncTimeout两个内部类和一个Handler接口。Acceptor用于监听请求,AsyncTimeout用于检查异步Request的超时,Handler用于处理接收到的Socket,在内部调用Processor进行处理。

    到了这里,我们可以回答上面的问题了,但是Container是如何进行处理的以及处理完之后是如何将处理完的结果返回给Connector我们还不清楚,

    在这里插入图片描述

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

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

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

    Wrapper:每一Wrapper封装着一个Servlet;
    在这里插入图片描述

    下面我们结合tomcat 的文件目录说下
    Context和Host的区别是Context表示一个应用,Tomcat中默认配置下webapps下的每一个文件夹目录都是一个Context,如图中所示,其中ROOT目录中存放着主应用,其他目录存放着子应用,而整个webapps就是一个Host站点

    我们访问应用Context的时候,

    如果是Host(webapps)下的其他应用,则可以使用http://www.test.com/docs进行访问,

    默认指定的根应用(ROOT)是可以进行改变的

    Container如何处理请求

    Container处理请求是使用Pipeline-Valve管道来处理的

    Pipeline-Valve是责任链模式,责任链模式是指在一个请求处理的过程中有很多处理者依次对请求进行处理,每个处理者负责做自己相应的处理,处理完之后将处理后的请求返回,再让下一个处理着继续处理。

    每个Pipeline都有特定的Valve,而且是在管道的最后一个执行,这个Valve叫做BaseValve,BaseValve是不可删除的;

    在上层容器的管道的BaseValve中会调用下层容器的管道。

    在这里插入图片描述
    当执行到StandardWrapperValve的时候,会在StandardWrapperValve中创建FilterChain,并调用其doFilter方法来处理请求,这个FilterChain包含着我们配置的与请求相匹配的Filter和Servlet,其doFilter方法会依次调用所有的Filter的doFilter方法和Servlet的service方法,这样请求就得到了处理!

    当所有的Pipeline-Valve都执行完之后,并且处理完了具体的请求,这个时候就可以将返回的结果交给Connector了,Connector在通过Socket的方式将结果返回给客户端。

    如果执行过程中间出现问题就抛异常。

    展开全文
  • 分析Tomcat的工作原理

    2021-01-09 00:45:48
    SpringBoot 就像一条巨蟒,慢慢缠绕着我们,使我们麻痹。不得不承认,使用了 SpringBoot 确实提高了工作...但是,清楚 Tomcat 的工作原理和处理请求流程和分析 Spring 框架源码一样的重要。至少面试官特别喜欢问这些底
  • tomcat服务器工作原理

    2018-12-28 11:38:12
    更深入的了解tomcat服务器的运行机制 更好的了解底层技术实现。
  • 原理简介  HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,...
  • 在本地eclipse上创建一个tomcat server即tomcat服务器时, 会复制一份tomca安装目录中的conf文件下的配置文件到这个tomcatserver目录下 这个tomcatserver目录在workspaces路径,跟其他project同路径 文件如下,这些...
  • tomcat服务程序里的conf里,web,tomcat-users,server等文件的详细讲解
  • Tomcat原理与实战

    2020-08-27 22:46:44
    Tomcat 原理与实战 ppt内容pdf文档
  • TOMCAT原理

    千次阅读 2022-03-09 21:50:57
    一、TOMCAT的基本架构 二、Coyote连接器 三、Catalina容器 四、启动流程介绍 五、请求处理流程介绍 六、Jasper引擎 七、服务器配置 1、Server、Service 2、Executor 3、Connector 4、Engine、Host 5、...

    一、TOMCAT的基本架构

    1、servlet基本架构

    由servlet容器加载servlet类,决定调用哪个servlet也就是业务类。整体遵守的就是servlet规范。

    2、Servlet容器工作流程

    当请求由http服务器转发给Servlet容器后,servlet会根据url的映射关系,定位到servlet。

    • 定位servlet
    • 加载servlet
    • 调用servlet

    3、tomcat架构

    两部分核心:

    1. 处理socket连接,负责处理网络请求 - Connector
    2. 加载和管理servlet,以及处理request请求 - Container

    二、Coyote连接器

    1、Coyote

    Coyote作为独立的模块,只负责集体协议和IO操作,与Servlet规范没有直接关系,因此Request和Response也与Servlet没有关系。这样就做到了组件之间的解藕。

    支持的IO模型:

    • NIO:非阻塞IO,采用java NIO类库实现
    • NIO2:一步IO,采用JDK7最新的NIO2类库实现
    • APR:采用apache的可以值类库实现

    支持的应用层协议:

    • HTTP1.1:这是大部分web采用的访问协议
    • AJP:用于和Web服务器即成,以实现对静态资源的优化和集群部署
    • HTTP2:下一代HTTP协议,性能大幅度提升

    tomact容器支持多种IO模型和应用层模型。每个容器可以连接多个Coyote。所以一个coyote+catalina才能对外提供服务,也就是一个service。

    2、Coyote组件的架构

    1. EndPoint:接受socket请求,发送给Processor
    2. Processor:将socket请求,封装为http请求,request转发给Adapter
    3. Adapter:由适配器将request对象封装成servletRequest转发给容器
    4. ProtocolHandler: EndPoint+Processor

    三、Catalina容器

    1、Catalina容器

    Catalina是Tomcat的servlet容器。包含了后面涉及到的安全、会话、集群、管理的Servlet容器架构的各个方面。

    Tomcat本身就是一个servlet容器,所以Catalina就是tomcat的核心。其它的模块都是为Catalina容器进行提供服务的。 

    2、Catalina结构

    • Catalina:负责解析Tomcat配置文件,以此来创建服务器Server组件,并根据命令管理
    • Server:表示整个Catalina Servlet容器及其它组件,负责启动Servlet引擎,tomcat连接器
      • Service:将Connector和Container绑定到一期
        • Connector:连接器
        • Container:servlet容器

    3、Container结构

    Container包含了Engine、Host、Context、Wapper,它们不是平行关系,而是父子关系。

    • Engine:表示整个Catalina的Servlet的引擎,一个Service只能包含一个Engine
    • Host:代表一个虚拟主机或者一个站点,可以个给Tomcat配置多个虚拟主机
    • Context:代表一个web应用,一个应用可以有多个Context
    • Wapper: 代表一个Servlet

    其实在server.xml中就包含了以上的各个组件和它们之间的关系。

    四、启动流程介绍

    父组件启动同时调用子组件的启动方法。记载tomcat的配置文件,初始化容器组件,监听对应的端口号,准备接受客户端请求。

    在tomcat,所有的功能都被抽象成组件,他们都有一个统一的接口,就是Lifecycle接口,它的核心方法有:

    • init():初始化组件
    • start():启动组件
    • stop():停止组件
    • destroy():销毁组件

    个组件默认实现如下:

    五、请求处理流程介绍

    1、请求处理流程

    tomcat是使用mapper组件,进行请求的映射。可以看成是一个多层次的map。

     

    六、Jasper引擎

    1、简介

    主要作用就是解析jsp页面,然后生成class字节码,向浏览器输出HTML。由于使用的越来越少了,在这里就不进行过多介绍。

    2、编译方式

    • 运行时编译:请求第一次的时候,进行编译
    • 预编译:启动项目的时候,直接编译完成

    七、服务器配置

    1、核心配置文件server.xml

    是tomcat服务器的核心配置文件,包含了tomcat中servlet(Catalina)容器的全部配置。

    • Server:根标签,配置关闭端口,配置相关的监听器、全局命名和多个Service
    • Service:服务名字就是Catalina,可以配置多个连接器、一个Engine
    • Executor:配置tomcat线程池相关内容,如果配置则多个连接器使用一个,否则每个连接器使用自己的线程池
    • Connector:连接器,可以配置port、protocol、conectionTimeout、redirectProt(https)、executor、encoding
    • Engine:name、defaultHost(默认主机)、jvm(使用的虚拟机)
    • Host:name、appBase(部署路径)、unpackWARs(是否解压WAR包)、autoDeploy(是否自动部署)
    • Context:虚拟主机中的项目
    展开全文
  • tomcat的工作原理

    千次阅读 2021-05-20 21:05:51
    本文源自转载:你还记得 Tomcat 的工作原理么 一、Tomcat 整体架构 Tomcat 是一个免费的、开源的、轻量级的 Web 应用服务器。适合在并发量不是很高的中小企业项目中使用。 二、文件目录结构 以下是 Tomcat 8 ...

    本文源自转载:你还记得 Tomcat 的工作原理么

    一、Tomcat 整体架构

    Tomcat 是一个免费的、开源的、轻量级的 Web 应用服务器。适合在并发量不是很高的中小企业项目中使用。

     

    二、文件目录结构

    以下是 Tomcat 8 主要目录结构

     

    三、功能组件结构

    Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

     

    四、Tomcat 连接器核心原理

    Tomcat 连接器框架——Coyote

    4.1 连接器核心功能

    一、监听网络端口,接收和响应网络请求。

    二、网络字节流处理。将收到的网络字节流转换成 Tomcat Request 再转成标准的 ServletRequest 给容器,同时将容器传来的 ServletResponse 转成 Tomcat Response 再转成网络字节流。

    4.2 连接器模块设计

    为满足连接器的两个核心功能,我们需要一个通讯端点来监听端口;需要一个处理器来处理网络字节流;最后还需要一个适配器将处理后的结果转成容器需要的结构。

    对应的源码包路径 org.apache.coyote 。对应的结构图如:

    五、Tomcat 容器核心原理

    Tomcat 容器框架——Catalina

    5.1 容器结构分析

    每个 Service 会包含一个容器。容器由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用会有多个 Servlet 包装器。Engine、Host、Context 和 Wrapper,四个容器之间属于父子关系。

    对应的源码包路径 org.apache.coyote 。对应的结构图如下:

    5.2 容器请求处理

    容器的请求处理过程就是在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用,最后在 Servlet 中执行对应的业务逻辑。各容器都会有一个通道 Pipeline,每个通道上都会有一个 Basic Valve(如StandardEngineValve), 类似一个闸门用来处理 Request 和 Response 。其流程图如下。

    六、Tomcat 请求处理流程

    上面的知识点已经零零碎碎地介绍了一个 Tomcat 是如何处理一个请求。简单理解就是连接器的处理流程 + 容器的处理流程 = Tomcat 处理流程。哈!那么问题来了,Tomcat 是如何通过请求路径找到对应的虚拟站点?是如何找到对应的 Servlet 呢?

    6.1 映射器功能介绍

    这里需要引入一个上面没有介绍的组件 Mapper。顾名思义,其作用是提供请求路径的路由映射。根据请求URL地址匹配是由哪个容器来处理。其中每个容器都会它自己对应的Mapper,如 MappedHost。不知道大家有没有回忆起被 Mapper class not found 支配的恐惧。在以前,每写一个完整的功能,都需要在 web.xml 配置映射规则,当文件越来越庞大的时候,各个问题随着也会出现

    6.2 HTTP请求流程

    打开 tomcat/conf 目录下的 server.xml 文件来分析一个http://localhost:8080/docs/api 请求。

    第一步:连接器监听的端口是8080。由于请求的端口和监听的端口一致,连接器接受了该请求。

    第二步:因为引擎的默认虚拟主机是 localhost,并且虚拟主机的目录是webapps。所以请求找到了 tomcat/webapps 目录。

    第三步:解析的 docs 是 web 程序的应用名,也就是 context。此时请求继续从 webapps 目录下找 docs 目录。有的时候我们也会把应用名省略。

    第四步:解析的 api 是具体的业务逻辑地址。此时需要从 docs/WEB-INF/web.xml 中找映射关系,最后调用具体的函数。

    <?xml version="1.0" encoding="UTF-8"?>
    <Server port="8005" shutdown="SHUTDOWN">
    
      <Service name="Catalina">
    
    	<!-- 连接器监听端口是 8080,默认通讯协议是 HTTP/1.1 -->
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    			   
    	<!-- 名字为 Catalina 的引擎,其默认的虚拟主机是 localhost -->
        <Engine name="Catalina" defaultHost="localhost">
    
    	  <!-- 名字为 localhost 的虚拟主机,其目录是 webapps-->
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
    
          </Host>
        </Engine>
      </Service>
    </Server>

    七、SpringBoot 如何启动内嵌的 Tomcat

    SpringBoot 一键启动服务的功能,让有很多刚入社会的朋友都忘记 Tomcat 是啥。随着硬件的性能越来越高,普通中小项目都可以直接用内置 Tomcat 启动。但是有些大一点的项目可能会用到 Tomcat 集群和调优,内置的 Tomcat 就不一定能满足需求了。

    我们先从源码中分析 SpringBoot 是如何启动 Tomcat,以下是 SpringBoot 2.x 的代码。

    代码从 main 方法开始,执行 run 方法启动项目。

    SpringApplication.run

    从 run 方法点进去,找到刷新应用上下文的方法。

    this.prepareContext(context, environment, listeners, applicationArguments, printedBanner);
    this.refreshContext(context);
    this.afterRefresh(context, applicationArguments);

    从 refreshContext 方法点进去,找 refresh 方法。并一层层往上找其父类的方法。

    this.refresh(context);

    在 AbstractApplicationContext 类的 refresh 方法中,有一行调用子容器刷新的逻辑。

    this.postProcessBeanFactory(beanFactory);
    this.invokeBeanFactoryPostProcessors(beanFactory);
    this.registerBeanPostProcessors(beanFactory);
    this.initMessageSource();
    this.initApplicationEventMulticaster();
    this.onRefresh();
    this.registerListeners();
    this.finishBeanFactoryInitialization(beanFactory);
    this.finishRefresh();

    从 onRefresh 方法点进去,找到 ServletWebServerApplicationContext 的实现方法。在这里终于看到了希望。

    protected void onRefresh() {
        super.onRefresh();
    
        try {
            this.createWebServer();
        } catch (Throwable var2) {
            throw new ApplicationContextException("Unable to start web server", var2);
        }
    }

    从 createWebServer 方法点进去,找到从工厂类中获取 WebServer的代码。

    if (webServer == null && servletContext == null) {
        ServletWebServerFactory factory = this.getWebServerFactory();
        // 获取 web server 
        this.webServer = factory.getWebServer(new ServletContextInitializer[]{this.getSelfInitializer()});
    } else if (servletContext != null) {
        try {
            // 启动 web server
            this.getSelfInitializer().onStartup(servletContext);
        } catch (ServletException var4) {
            throw new ApplicationContextException("Cannot initialize servlet context", var4);
        }
    }

    从 getWebServer 方法点进去,找到 TomcatServletWebServerFactory 的实现方法,与之对应的还有 Jetty 和 Undertow。这里配置了基本的连接器、引擎、虚拟站点等配置。

    public WebServer getWebServer(ServletContextInitializer... initializers) {
        Tomcat tomcat = new Tomcat();
        File baseDir = this.baseDirectory != null ? this.baseDirectory : this.createTempDir("tomcat");
        tomcat.setBaseDir(baseDir.getAbsolutePath());
        Connector connector = new Connector(this.protocol);
        tomcat.getService().addConnector(connector);
        this.customizeConnector(connector);
        tomcat.setConnector(connector);
        tomcat.getHost().setAutoDeploy(false);
        this.configureEngine(tomcat.getEngine());
        Iterator var5 = this.additionalTomcatConnectors.iterator();
    
        while(var5.hasNext()) {
            Connector additionalConnector = (Connector)var5.next();
            tomcat.getService().addConnector(additionalConnector);
        }
    
        this.prepareContext(tomcat.getHost(), initializers);
        return this.getTomcatWebServer(tomcat);
    }

    服务启动后会打印日志

    o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8900 (http)
    o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.34
    o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal ...
    o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 16858 ms

     

    展开全文
  • tomcat基本原理

    2018-07-18 10:54:18
    http和tamcat的基本原理,初学者可以下载看看,2018最新最全的
  • Tomcat服务器创建一个ServletRequest对象,在ServletRequest对象中包含了客户请求信息其他关于客户的信息,如请求头,请求正文,以及客户机的IP地址等
  • Tomcat组成工作原理借鉴.pdf
  • tomcat的工作原理,从最简单的socket服务端,客户端开始,逐步扩展!最终手把手教你完成一个简单的servlet 容器。最终彻底搞懂tomcat
  • 迷你版的Tomcat,利用socket的输入输出流,封装解析request,response对象
  • IDEA中部署Tomcat及原理

    2020-04-12 16:42:17
    IDEA中部署Tomcat 1.新建项目 1.1 创建一个JavaWeb工程 File->New->Project->Java Enterprise选择Web Application 1.2 选择路径 2.JavaWeb目录介绍 Day50:项目名称 src:存放Java代码 web:存放web...
  • Tomcat工作原理

    2019-07-23 04:36:01
    资源名称:Tomcat工作原理 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
  • tomcat工作原理
  • Tomcat 架构 原理

    2013-09-06 08:52:53
    Tomcat 架构 原理
  • tomcat工作原理.docx

    2022-06-06 21:37:15
    tomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docx
  • Tomcat运行原理

    千次阅读 2019-07-15 22:52:20
    Tomcat服务器本质 Tomcat是运行在JVM中的一个进程。通过处理scoket通信 (Socket) 来运行。 Web项目的本质,是一大堆的资源文件和方法。Web项目没有入口方法(main方法),意味着Web项目中的方法不会自动运行起来。...
  • Tomcat底层原理及实现

    2020-01-31 22:17:51
    Tomcat 原理:(java编写 socket 监听 包含死循环 main方法–>主线程){接受请求 , 返回请求 请求 分发} 计算机通过网卡与外界交互 ; 一台电脑逻辑上端口:2^16个端口 (物理上是一个地方) 不会出现不够用这种情况 ...
  • tomcat工作原理

    2018-04-02 10:37:11
    深入理解tomcat工作原理,剖析其工作的过程,tomcat各节点的作用
  • Tomcat的体系架构及原理

    千次阅读 2022-01-20 22:15:18
    性能要优于BIO,APR是本地库,性能最佳,但是需要操作系统底层支持,要安装可移植库 Coyote的内部组件 Coyote 组件的作用 Tomcat的Servlet容器 Catania Tomcat的分层结构以及Catania的位置 Tomcat是有一系列配置 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,917
精华内容 58,766
热门标签
关键字:

tomcat作用及原理