tomcat基础内容

目录结构

  • bin内部包含.sh.bat分别是linuxwindows的执行文件
  • lib依赖的jar
  • conf
  1. catalina.policy 权限相关配置
  2. server.xml 具体配置文件
Server节点
     - Executor 线程池
     - Connector 连接器,管理对外的连接配置端口之类的。如果使用了线程池,这里的最大线程无效

  1. web.xml
Servlet
    - DefaultServlet 默认的,加载静态文件,图片,html,js等
    - JspServlet 处理jsp的
mime-mapping Tomcat处理的文件类型 
welcome-file-list 首页
  • logs 日志
  1. catalina.x.log 启动日志
  2. localhost_access_log 接收到的请求日志

部署

  • 隐式部署, war包放到webapps里(一般不推荐,程序和部署工具应该隔离)
  • server.xml配置 Host
<Host name="localhost" appBean="webapps" unpackWARs="true" auto Deploy="true">
    <!-- reloadable热加载 -->
    <Context path="/myUrl" docBase="d:/Demo" reloadable="true"> </Context>
...
  • 创建xml conf/Catalina/localhost/my.xml

my.xml

<?xml version="1.0" encoding="UTF-8">
<Context path="/myUrl" docBase="d:/Demo" reloadable="true"> </Context>

然后就可以直接访问/my路径进入程序

结构

结构

Service(通过配置多个service和connector可以监听多个端口) -> engine(引擎) --> Host(虚拟主机,域名)--> Context(应用)-->wrapper(servlet)

  • Bootstarp 入口类
  • Catalina 启动类
  • server 服务器,代表整个tomcat(StandardServer是标准实现 )
  • Service 逻辑功能层,可以有多个
  • Connector连接器,负责Tomcat与客户端通讯 (多个)
  • Container Service 的核心组件,按照层级有Engine,Host,Context,Wrapper四种,一个service只有一个Engine
  1. Connector发送RequestContainer
  2. Container返回Reponse
  • Jasper jsp引擎

连接器

  • NIO模式,
  1. ChannelSelector注册连接,读写IO事件
  2. Selector轮询selectKey集合
  3. 通过key找到对应的channel通过绑定的buffer进行读写
  • 流程解析
  1. ProtocolHandler 协议解析
  2. Endpoint Socker网络连接处理
  3. Processor 处理Socker封装成Request
  4. Adapter适配器将Request包装成ServletRequest

容器,责任链

Engine => Host => Context => Wrapper
Catalina.start()启动tomcat start

启动

增加VM参数

# 设置环境变量
-Dcatalina.home="D:\tomcat\build"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容