首先所有的请求进入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>……后面太多贴不出来了

tomcat defaultServlet的更多相关文章

  1. Tomcat 的 DefaultServlet

    问题描述: 群里有人测试 Spring MVC,没有配置任何Controller,只配置了一个view resolver,指定了前缀后缀. 然后,他问的是 当访问 localhost:8080/tes ...

  2. 利用Tomcat内置的servlet实现文件下载功能

    起因 最近博客所在的VPS挂了又要重装系统,又要重装各种软件. 以前我也经常更换VPS,每次更换都是各种坑爹事情..比如要下载java.下载tomcat.下载mysql..........以前每次我都 ...

  3. gradle中使用嵌入式(embedded) tomcat, debug 启动

    在gradle项目中使用embedded tomcat. 最开始部署项目需要手动将web项目打成war包,然后手动上传到tomcat的webapp下,然后启动tomcat来部署项目.这种手动工作通常还 ...

  4. 关于tomcat文件下载配置

    前言 tomcat文件下载 关闭tomcat目录列表浏览功能 Tomcat 不能下载带中文文件名的附件的方法 在Java Web项目中文件下载是一个很常见的功能,最近在做项目中发现可以通过tomcat ...

  5. tomcat组成以及工作原理

    1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet Containe ...

  6. e.Tomcat中的sendfile支持

    sendfile实质是linux系统中一项优化技术,用以发送文件和网络通信时,减少用户态空间与磁盘倒换数据,而直接在内核级做数据拷贝,这项技术是linux2.4之后就有的,现在已经很普遍的用在了C的网 ...

  7. 【WEB】Tomcat基础使用知识

    由于当前项目性质原因,从开始到现在使用的WEB服务器都是WAS,而Tomcat的基础知识也慢慢地被遗忘.由于种种原因,让我参与到了另外一个全新的项目,使用的是Tomcat6.X,所以复习是必须的,而写 ...

  8. tomcat对请求路径的匹配过程(原创)

    1.匹配服务 如果有两个应用,一个应用只能通过80端口访问,另一个应用只能通过8080端口访问,这种情况下,可以分开两个服务,然后分别创建80端口和8080端口的连接器. 2.匹配主机 一个服务下配置 ...

  9. Tomcat源码分析

    前言: 本文是我阅读了TOMCAT源码后的一些心得. 主要是讲解TOMCAT的系统框架, 以及启动流程.若有错漏之处,敬请批评指教! 建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, ...

随机推荐

  1. servlet从服务器磁盘文件读出到浏览器显示,中文乱码问题,不要忘记在输入流和输出流都要设置编码格式,否则一个地方没设置不统一就会各种乱码

    package com.swift; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOE ...

  2. iOS多播Delegate类——GCDMulticastDelegate用法小结

    iOS中通常的delegate模式只能有一个被委托的对象,这样当需要有多个被委托的对象时,实现起来就略为麻烦,在开源库XMPPFramework中提供了一个GCDMulticastDelegate类, ...

  3. vue切换路由时动画

    安装个包 npm i nprogress 直接导入使用 最终的效果就是

  4. .NET下寄宿于控制台的HTTPS监听

    附上原文链接:https://blogs.msdn.microsoft.com/jpsanders/2009/09/29/how-to-walkthrough-using-httplistener-o ...

  5. tomcat修改默认主页, 前段项目放到tomcat下,浏览器输入ip加端口后,直接到项目主页

    1,将 项目 放到 tomcat 的webapps 文件夹下 2, 修改conf 下的 server.xml , 找到 <Host name="localhost" appB ...

  6. 五、Linux 远程登录

    Linux 远程登录 Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的Linux服务器. 这时我们就需要远程登录到Linux服务器来管理维护系统. Linux系统中是通过ss ...

  7. GNU汇编 函数调用的例子

    .text .global  _start _start: mov r1,#2 cmp  r1,#1 bl func1    @bl能保存下一条指令的位置到lr寄存器里面,b不能 mov  r1, # ...

  8. oracle一些常用的数据类型

    字符数据类型 char数据类型 当需要固定长度时,使用char数据类型,此数据类型长度可以使1-2000字节.若是不指定大小默认占1字节,如果长度有空余时会以空格进行填充,如果大于设定长度 数据库则会 ...

  9. WebUploader压缩图片上传

    WebUploader,由Baidu FEX 团队开发,以H5为主,FLASH为辅,兼容 IE6+,iOS 6+, android 4+,采用大文件分片并发上传,极大的提高了文件上传效率,看了官方文档 ...

  10. 闯越自动签到demo版补充说明

    demo代码:https://www.cnblogs.com/canmeng/p/11000548.html 定位出错是由于cookie 我重新登录账号过,cookies的值就变了 当时没注意cook ...