• Servlet源码解析分析
    1 Servlet技术的结构图

    Servlet技术中的三大接口有Servlet,ServletConfig和Serializable,而GenericServlet抽象类实现了这三个顶层接口,最后HttpServlet类实现了GenericServlet抽象类,所以要首先一个Servlet直接继承HttpServlet,

  • Servlet接口简介
    这个Servlet接口就是servlet技术的规范:其中有5大规范
    1 init(); 该方法负责初始化Servlet对象,创建好Servlet对象之后就调用这个方法来初始化该对象,
    2 service();该方法是处理客户端的请求并返回响应,当接收到请求时就会调动该方法,
    3 destory();该方法是负责释放Servlet对象占用的资源,当servelt对象结束生命周期时调用该方法销毁servlet对象,
    4 getServletInfo(); 该方法返回Servlet的创建者,版本和版权,
    5 getServetConfig();该方法返回servlet初始化参数,

  • ServletConfig接口介绍
    作用就是在servlet中如何获取配置信息的,有四个抽象方法:
    1 getServletName();用于获取Servlet名字,web.xml中定义的servelt-name;
    2 getServletContext();用于获取Servlet上下文对象,
    3 getInitParameter();获取初始化信息;

  • GenericServlet抽象类
    这个抽象类是servlet的默认实现,是与具体协议无关,

  • 基于协议的HttpServlet抽象类
    它是一个抽象类,但是他没有抽象方法,他不能实例化,那么如果处理请求和作出响应这个类没有定义,那就需要我们自己继承这个类来自定义实现具体的处理方法,
    有处理协议相关的请求方法:doGet(), doPost()方法,service方法
    HttpServlet是基于Http协议实现Servlet基类,我们编写servlet时直接继承他就可以了,springmvc中的dispatchServlet就是继承httpServlet,这个类主要就是用来根据协议来进行不同的处理,

  • tomcat 架构图
    1 Server就是tomcat
    2 Server包含了多个Service,
    3 Service中有connector组件和engine组件
    4 engine中包含了host主机,
    5 host里面有listener监听器,context对象,
    6 context对象中包含了webapp

Server就是服务器的意思,代表了整个tomcat,一个tomcat中只有一个server,
Server组件中至少有一个Service组件,用来提供具体的服务,也有对应的Server配置文件,
Service是一个逻辑层,用来接收客户端请求,解析请求,完成对应的逻辑处理,
connector是一个连接器,处理客户端连接,封装成Request和Response,然后交给Container进行处理,
container是一个处理逻辑的组件里面有engine,host,context,
engine表示整个Servlet引擎,
host 代表一个站点,虚拟主机,是服务器运行实例,在host里面自动扫描webapps目录,war包自动解压自动部署。
content 代表应用程序,就是web程序,每一个运行的webapp最终都是以Context的形式存在,每一个Context都有一个根路径和请求路径,
webapps下的每一个目录都是一个应用,Root目录中存放主应用,webapps是一个站点,

Servlet和Tomcat底层分析相关推荐

  1. tomcat架构分析 (Session管理)【转】

    原文地址:https://www.iteye.com/blog/gearever-1546423 Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是 ...

  2. tomcat架构分析(valve源码导读)【转】

    原文地址:https://www.iteye.com/blog/gearever-1540028 源码面前,了无秘密                               ----侯捷  在to ...

  3. tomcat架构分析(connector BIO 实现)【转】

    原文地址:https://www.iteye.com/blog/gearever-1841586 在tomcat架构分析(概览)中已经介绍过,connector组件是service容器中的一部分.它主 ...

  4. SpringBoot嵌入Tomcat原理分析

    SpringBoot嵌入Tomcat原理 内嵌Tomcat启动原理 首先,来到启动SpringBoot项目的地方,也就是朱配置类. @SpringBootApplication public clas ...

  5. Android底层隐私数据,Android Intent传递数据底层分析详细介绍_Android_脚本之家

    Android  Intent传递数据底层分析详细介绍 我们知道在Activity切换时,如果需要向下一个ActivityB传递数据,可以借助Intent对象的putExtra方法. 但是不知各位有没 ...

  6. 【Tomcat】Tomcat性能分析

    一.预研任务介绍和预研目标 任务介绍: Apache Tomcat是目前较为流行的web服务器,以其技术先进.性能稳定著称,其次它还是一个免费开源的项目. Tomcat性能分析的意义在于能为日常工作中 ...

  7. 【Python基础避坑】函数内存底层分析,全局变量/局部变量,参数传递,浅拷贝/深拷贝

    老高说,基本功不扎实会在工作中遇到很多的坑,非常同意- 函数定义示例 1.含有返回值 # -*-coding:utf-8-*- def add(a, b):'''两数相加'''sum = a + br ...

  8. C++11 std::shared_ptr的std::move()移动语义底层分析

    std::shared_ptr的std::move()移动语义底层分析 执行std::move()之前: 执行std::move()之后: 结论:一个浅拷贝 sizeof(std::shared_pt ...

  9. android中intent放数据类型,Android Intent传递数据底层分析详细介绍

    Android  Intent传递数据底层分析详细介绍 我们知道在Activity切换时,如果需要向下一个ActivityB传递数据,可以借助Intent对象的putExtra方法. 但是不知各位有没 ...

  10. String的底层分析 (学习笔记)

    StringTable底层分析 String的基本特性 StringPool String的内存分配 字符串的拼接操作 拼接效率的对比 intern()的理解 new String("&qu ...

最新文章

  1. RhinoMock学习-绑定回调
  2. hammer用法 jquery.hammer.js
  3. window apktool 的下载
  4. 易语言超文本ctrl c,易语言超文本浏览框处理键盘消息源码
  5. CJ20N被删除物料的历史记录
  6. [Z]四种浏览器对 clientHeight、offsetHeight、scrollHeight、clientWidth、offsetWidth 和 scrollWidth 的解释...
  7. 视频课程更新,机器学习、数理统计、矩阵分析、运筹视频教程
  8. 有没有计算机用户号,刚做的系统怎么有账户-用户帐号系统设计的原则有哪些?...
  9. poj 1185(状态压缩DP)
  10. mysql now()相减_MySQL 时间函数加减计算
  11. easyboot制作xp、win7、ubuntu、老毛桃winpe、深山红叶dos工具箱多合一光盘
  12. ArcGIS土地利用转移矩阵(附土地利用数据下载)
  13. 强化学习基础05——gym
  14. 页面可视化搭建工具业界的轮子
  15. 筛质数—(朴素筛法、埃氏筛法、欧拉筛法(线性筛法))
  16. 计算机教师职业幸福感,教师职业幸福感的领悟
  17. 联想小新一键恢复小孔_联想小新Air系列一键恢复及恢复后首次配置的步骤
  18. PCL:RANSAC 圆拟合(二维圆 + 空间圆)
  19. Ubuntu14.04上安装tftpd服务
  20. 关于本人上传的资源Win98WinXPWin7整合包虚拟机Alpha1

热门文章

  1. mac osx 系统 brew install hadoop 安装指南
  2. Oracle SQL 模拟MySQL的inet_aton()和inet_ntoa()
  3. ASP .NET中一个可以用来大作文章的地方。
  4. c语言函数的英文全称
  5. 关于python的论文the philosophy_Philosophy in Python
  6. 拓端tecdat|R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
  7. 拓端tecdat|R语言用多项式回归和ARIMA模型预测电力负荷时间序列数据
  8. 拓端tecdat|R语言进行数值模拟:模拟泊松回归模型的数据
  9. mysql比较varchar值大小_Mysql varchar大小长度问题
  10. smale学习之数学表达式(day2)