1. 11.1 Servlethistorical

    生命周期 - 调用init方法初始化 仅调用一次,在第一次创建servlet时调用 - 调用service方法处理客户端请求 每次客户端请求都会调用这个方法,转而调用doGet,doPost。。。 - 调用destroy方法终止 只会被调用一次 - 垃圾回收 参考链接 - Servlet 生命周期

  2. 11.2 调优historical

    jvm调优 windows下为catalina.bat,在开头的位置加上jvm参数即可 观察参数是否设置成功 jps -l 获取PID jmap -heap PID查看结果 Coyote连接器调优 参数 说明 ------------- -------------------------------

  3. 11.3 使用historical

    创建工程 新建servlet - com.zsk.controller.HelloServlet 配置web.xml 配置tomcat 运行访问 <http://localhost:8080/tomcat test war exploded/ 把idea生成的文件拷贝到tomcat下运行

  4. 11.4 Connectorhistorical

    概述 -- - 连接器采用的是boss/worker的设计模式和adapter模式 - 有endpoint负责处接受tcp/ip请求--boss - 有processor负责将tcp/ip请求转成http请求--worker - Adapter负责将request/response转换成servle

  5. 11.5 启动流程historical

    启动的主类 startup.bat 我们启动的时候通过startup.bat,他只是简单的调用catalina.bat catalina.bat 时序图 源码追踪 init Bootstrap init - main Catalina init - load StandardServer init

  6. 11.6 源代码层面historical

    时序图 源码追踪 由启动流程.md tomcat启动由两个主要步骤,一个是init,另一个是start init主要的工作是绑定端口号(bind),start主要的工作是监听客户端链接(accept) 其中监听客户端链接的代码在这段逻辑 NioEndpoint - startInternal Acc

  7. 11.7 源码编译historical

    1. 下载源码解压 Apache Tomcat® \- Apache Tomcat 8 Software Downloads 2. 改造成maven工程 在源码根目录添加pom.xml 3. 配置启动类 - org.apache.catalina.startup.Bootstrap 启动参数 4.

  8. 11.8 Containerhistorical

    概述 - 一个server可以有多个service - 一个service由多个connector和一个container组成 - 一个container由一个engine - 一个engine有多个host【虚拟站点】 - 一个host由多个context【应用】 - 一个context由多个wr

  9. 11.9 配置文件层面historical

    以 <http://localhost:8080/tomcat test/hello 为例 找到对应的connector 找到engine/service 找到对应的host:找到对应的context:tomcat test 找到对应的wrapper:hello

  10. 11.10 LifeCyclehistorical

    LifeCycle的历史学习笔记

  11. 11.11 架构historical

    是什么 tomcat是一个实现了servlet规范的web服务器软件。 他有两个作用,一个是http服务器,负责跟浏览器交互,处理请求和响应 另一个是servlet容器,将请求转发给实际的业务类处理并获取相应 为什么这样设计 为了解耦。如果只有http服务器,那么我们的业务都写在http服务器上,耦