首先所有的请求进入tomcat,都会流经servlet,如果没有匹配到任何应用指定的servlet,那么就会流到默认的servlet。

默认的servlet是配置在$catalina/conf/web.xml里面的。

如下面贴出来所示(由于贴的内容太多了,我把注释去掉了,其实注释是相当重要的):

  1. <servlet>
  2. <servlet-name>default</servlet-name>
  3. <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
  4. <init-param>
  5. <param-name>debug</param-name>
  6. <param-value>0</param-value>
  7. </init-param>
  8. <init-param>
  9. <param-name>listings</param-name>
  10. <param-value>false</param-value>
  11. </init-param>
  12. <load-on-startup>1</load-on-startup>
  13. </servlet>
  14. <servlet>
  15. <servlet-name>jsp</servlet-name>
  16. <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
  17. <init-param>
  18. <param-name>fork</param-name>
  19. <param-value>false</param-value>
  20. </init-param>
  21. <init-param>
  22. <param-name>xpoweredBy</param-name>
  23. <param-value>false</param-value>
  24. </init-param>
  25. <load-on-startup>3</load-on-startup>
  26. </servlet>
  27. <servlet-mapping>
  28. <servlet-name>jsp</servlet-name>
  29. <url-pattern>*.jsp</url-pattern>
  30. </servlet-mapping>
  31. <servlet-mapping>
  32. <servlet-name>jsp</servlet-name>
  33. <url-pattern>*.jspx</url-pattern>
  34. </servlet-mapping>

tomcat初始化一个context的时候就会初始化context下面所有的 servlet,包括这个默认的servlet。

如图:

图待添加

它就是从servletContext里面加载的资源中去取出需要的资源,然后加载进来,并且判断相应的mime类型设置不同的HTTP head,然后输出到页面上。内容还是挺简单的。

其中还有mime的mapping:

    1. <mime-mapping>
    2. <extension>abs</extension>
    3. <mime-type>audio/x-mpeg</mime-type>
    4. </mime-mapping>
    5. <mime-mapping>
    6. <extension>ai</extension>
    7. <mime-type>application/postscript</mime-type>
    8. </mime-mapping>
    9. <mime-mapping>
    10. <extension>aif</extension>
    11. <mime-type>audio/x-aiff</mime-type>
    12. </mime-mapping>
    13. <mime-mapping>
    14. <extension>aifc</extension>
    15. <mime-type>audio/x-aiff</mime-type>
    16. </mime-mapping>
    17. <mime-mapping>
    18. <extension>aiff</extension>
    19. <mime-type>audio/x-aiff</mime-type>
    20. </mime-mapping>
    21. <mime-mapping>
    22. <extension>aim</extension>
    23. <mime-type>application/x-aim</mime-type>
    24. </mime-mapping>
    25. <mime-mapping>
    26. <extension>art</extension>
    27. <mime-type>image/x-jg</mime-type>
    28. </mime-mapping>……后面太多贴不出来了

最新文章

  1. 用Myeclipse,包名上有小红叉(表示错误),但是包中的类都是没有错误的+struts2继承ActionSupport时package前面出错
  2. log4net一些配置说明
  3. 【Alpha版本】冲刺-Day8
  4. 基于AngularJS的过滤与排序
  5. 两个viewport的故事(第二部分)
  6. mesos INSTALL
  7. Asp.net Vnext IValueProvider
  8. python 列表函数
  9. SqlServer 杂记 不断补充中
  10. GC之一--GC 的算法分析、垃圾收集器、内存分配策略介绍
  11. Latex 横排图片
  12. Apache 的 Rewrite 规则详细介绍
  13. angularJs工作日记-自定义指令Directive01
  14. offie2010设置前两页和后面显示不同页码的方法
  15. 寻找链表中倒数第K个结点的位置
  16. rsyslog 读日志文件 ,当rsyslog 中断时,也会丢数据
  17. 2013 ACM/ICPC Asia Regional Chengdu Online---1003
  18. BZOJ 1263: [SCOI2006]整数划分( 高精度 )
  19. Excel自己定义纸张打印设置碰到无法对上尺寸的问题
  20. Windows 8.1下 MySQL绿色版安装配置与使用

热门文章

  1. Mac 系统 + Chrome浏览器 网页前端出现中文文字反转或顺序错乱
  2. macbook pro开机键盘键盘和触摸板没反应问题
  3. Vue 父组件传值到子组件
  4. LOJ#6342. 跳一跳(期望)
  5. 【NTT】bzoj3992: [SDOI2015]序列统计
  6. linux正则表达式企业级深度实践案例2
  7. 【PHP】根据两地经纬度计算距离
  8. PHP 二维数组某个字段进行排序
  9. OpenFaceswap 入门教程(1):软件安装篇
  10. java中的继承 (2013-10-11-163 写的日志迁移