首先所有的请求进入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. Ubuntu 14.04 LTS 触摸板无法使用

    c16b上,触摸板不能使用,查找后发现,需要在加载驱动时增加参数. 如下所说: 1.使用以下命令后,触摸板可以使用 sudo modprobe -r psmouse sudo modprobe psm ...

  2. A1043 Is It a Binary Search Tree (25 分)

    A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...

  3. 三十二、MySQL 导出数据

    MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中 ...

  4. ATM-interface-bank

    from lib import commonfrom db import db_handler user_logger = common.get_logger('bank') def check_ba ...

  5. Cuba studio框架中使用thymeteaf模板时中文乱码

    最近公司换了Cuba这个orm框架,框架中使用了thymeteaf模板技术,发现在html中解析汉字一直是乱码的存在 一直以为是tomcat的问题但是tomcat的server.xml,项目中的web ...

  6. Python 交互模式中 Delete/Backspace 键乱码问题

    进入 Python 交互模式,按下 Delete/Backspace 键,会出现 ^H 字符 解决方式: 1. 进到 Python 的Modules目录 [root@cyt-test Python-2 ...

  7. loj2045 「CQOI2016」密钥破解

    CQOI 板子大赛之 pollard rho #include <iostream> #include <cstdio> using namespace std; typede ...

  8. UNIX 系统中 wc 程序的主要部分

    以下代码为 UNIX 系统中 wc 程序的骨干部分 #include <stdio.h> #define IN 1 #define OUT 0 int main(int argc, cha ...

  9. ogre3D学习基础18 -- 材质的使用与脚本的简单书写

    这一节以基础16为基础,练习材质的使用. 第一,看看框架 //material #include "ExampleApplication.h" class TutorialAppl ...

  10. plsql 编程基础

    分支 declare --声明变量 a ); b ); c ); begin --开始 a := '小明'; dbms_output.put_line(a); b :; c :; if b > ...