• 面包屑之tomcat


      作为一个小小的java程序员,平日里接触最多的莫过于网页了。至于网页是如何神奇的动态传输到浏览器,对此我一直是一知半解。

      是的,工具实现了一切,还有学术界的"不要重复造轮子",像一道无形的高墙让人难以逾越。

      本人极度缺乏安全感,对陌生的事物,以及对未来的迷茫,让我迫切想抓住一切真相。

      我不敢承认自己没有方向,可我又害怕停下的步伐,我就像一头被栓住的磨驴,看不到远方,只能朝着未知的终点前进。

      

      想矫情下,却没有足够的才华。哎,还是说说最近看得一本书的心得吧。

      《how tomcat works》,书如其名,一本讲tomcat是如何工作的书。看完之后,不说达到了解惑的效果,至少收获了不少的知识。

      以前前辈总对我说,tomcat就是一个容器,再详细点就是一个装servlet的容器。恩,听起来挺简单的,也蛮容易理解的。可,它是个用来干什么的容器呢?

      这本书里面就有答案:tomcat其实就是个实现了servlet规范的一个容器。(个人理解)

      tomcat基本结构:

      

      大致流程:

      Connector创建ServerSocket监听http请求

      Processor解析Http请求,创建HttpServletRequest,HttpServletResponse对象

      Container传递HttpServletRequest,HttpServletResponse对象到对应servlet。

      阅读感悟:

      解析http请求,实现servlet规范,

      各组件生命周期管理,事件支持(通过实现Lifecycle接口,接口有start,stop方法)

      后台周期线程,

      容器自带pipeline处理请求,方便请求

      工具类实现功能组件,提供技术支持,降低开发成本,(LifecycleSupport类)

      门面对象隐藏保护内部实现,

      xml配置对象,动态组建tomcat,(Digester)

      容器呈树状结构,适合分发请求, 

      catalina启动,解析xml组建顶层容器对象,直到host,host本身也是个deployer,根据多种方式配置Context,
      启动server,根据他们的层级关系,依次调用生命周期方法启动。

      catalina关闭,实现,主线程阻塞等待关闭命令,
      注册jvm关闭钩子,预防不正常关闭时,资源未回收,

      自定义classloader,
      目的:缓存,安全管理,

      logger, manager

     

      

      

      

      

       

      

  • 相关阅读:
    Win7 64位系统上Hadoop单机模式的安装及开发环境搭建
    HBase配置文件设置
    YARN HA 配置文件设置
    Hadoop的配置文件设置(HDFS HA)
    记一次java heap space的解决办法
    记一次sql优化——left join不走索引问题
    js黑魔法
    css坑了我一下下之line-height
    target-densitydpi=device-dpi会使其他ui插件布局变小
    redis缓存过期key优化-缓存不释放
  • 原文地址:https://www.cnblogs.com/w2154/p/5661839.html
Copyright © 2020-2023  润新知