servlet必知细节(三)-- DefaultServlet

servlet必知细节(三)-- DefaultServlet

缺省servlet:org.apache.catalina.servlets.DefaultServlet,作用是处理其他servlet处理不到的请求

我们知道,在我们工程的web.xml中,会配置servlet映射,但是有些访问无法找到映射,如一些静态图片,一些js文件等,那服务器是如何返回给客户端的呢?

要回答上面的问题,我们必须详细了解下DefaultServlet,下面我们看tomcat的官方解释。

1.什么是DefaultServlet?

默认的servlet是既服务于静态资源又服务于目录列表(如果允许目录列表的话)的servlet。

2.它被声明在哪里?

它在$CATALINA_HOME/conf/web.xml中被全局声明。默认形式的声明是这样的: $CATALINA_HOME/conf/web.xml

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

...

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

因此在默认的情况下,默认servlet在webapp启动时被装载,目录列表不可用,日志调试功能被关掉。

当访问的资源在工程的web.xml中没有Servlet映射时,我们如何加载资源的呢?

其实这就是一个io操作,DefaultServlet先根据客户端的访问路径,获取资源路径,然后找到服务器上资源绝对路径,再判断是否存在,如果不存在,则返回404或做其他处理,如果存在,则进行一个io读取操作返回给客户端。

上面学习,如果有错误,希望大家提出,共同提高,谢谢。

时间: 2024-10-05 00:39:18

servlet必知细节(三)-- DefaultServlet的相关文章

servlet必知细节(一)

servlet必知细节(一) 今天复习了一下servlet,有过一些编程经验后,与最初学习servlet相比,对servlet理解的角度不同了,最初只是学习了如何写一个servlet,api怎么用,现在从更深处了解了servlet. 1.servlet接口实现关系 HttpServlet继承GenericServlet,GenericServlet实现Servlet接口. 2.生命周期方法 其中Servlet接口有几个生命周期方法: init(),service(),destroy()为三个生命

servlet必知细节(二)--servlet执行过程

servlet必知细节(二)--servlet执行过程 我们知道,servlet没有main函数,那么,servlet是怎么调用的呢? 实际上,servlet 是由tomcat调用的,tomcat调用servlet程序执行. 由调用栈可以看到,当一个请求过来时,Bootstrap类的main方法调用. 当用户在客户端发起url请求 :http://localhost/servletDemo/hello的时候,servlet的执行过程是怎样的? 上面学习,如果有错误,希望大家提出,共同提高,谢谢!

优化网络和应用性能必知的三个经典响应时间点

前提:当我们设计鼠标点击事件.拖动窗口,当我们设定探测目标等待结果返回,当我们打开某网页查看内容,多长的时间是我们能够接受的呢?有没有学术理论研究支撑.本文会给你答案. ps:关于响应时间的学术支撑,至少花费2天时间没有Google到.现在偶然发现并整理如下: 1.系统响应时间定义 系统响应时间是指用户发出完整请求道系统完成任务给出响应的时间间隔.系统的响应时间对每个用户来说都是不一样的,以下因素会影响系统的平均响应时间: (1)和业务相关,处理不同的业务会有不同的响应时间. (2)和业务组合有

图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter    :BYSocket "眨眼间,离上一篇写技术博文时隔1个月.怕自己真的生疏了,都是备案太慢惹得.哈哈,继续high~ " 从[JavaEE 要懂的小事] Http相关,一直想写点Web开发相关的.最近项目接口开发紧,还有准备新的九月份战斗.JDK IO源码就隔一段落,温故知新看看Ser

APP开发制作的必知的五个细节

随着APP软件开发市场日趋成熟,无数的APP软件不断涌进各个应用市场,如果我们想要在众多的APP软件中脱颖而出,前期在APP开发制作中,就要多注意一些细节.细节决定成败,APP开发制作的细节决定APP的质量及"命运".所以制作开发一个APP不仅仅是APP功能的实现,更多的是为这个APP注入应有的生命,让这一款APP鲜活过来.因此,在APP开发中必需知道的以下的几个细节,才能开发出一款优质的APP应用. 一.寻找需求 app开发产品的最终的目标是知足大众用户的需求,使用的客户是否对这个A

良心教程——进入163邮箱“三必知”

良心教程--进入163邮箱"三必知" --如何选择并使用email邮箱更便捷? 时光飞逝,岁月洪流.从古代的的快马递信.鸿雁传书,到近代的电报.BP机,发展至今天的电子邮件.微信等电子通讯,从古映今,我们看到了翻天覆地的变化.今日,以电子邮箱品牌中的163邮箱为例,小编分享给大家进入163邮箱的"三必知",教你如何更详细的了解如何选择并使用email邮箱更便捷. 必知一:高效办公,十分便捷 TOM VIP邮箱是邮箱市场中主流品牌服务商之一,包含@163.net.@v

图解 &amp; 深入浅出JavaWeb:事务必会必知

图解 & 深入浅出JavaWeb:事务必会必知 转载自http://www.bysocket.com/ 事务,大家所熟悉的事务(Transaction),基本上会就往Spring事务靠.其实Spring事务管理基于底层数据库本身的事务处理机制.数据库事务的基础,是掌握Spring事务管理的基础.这篇总结下数据库事务. 一.数据库事务 它的思想:we are 伐木累.就是多个SQL语句(一个团队),要么所有执行success,不然就fail. 它最终的目标:数据不会被破坏.即事务操作成功,数据的结

程序员必知的10大基础实用算法

    算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2) 次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的 架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists). 算法步骤: 1 从数列中挑出一个元

移动前端开发人员必知必会:移动设备概述

因为工作岗位的变换带来工作内容的变动,对于移动网站的前端开发已经疏远了好几个月,在这好几个月中有很多新的东西出现,自己所掌握的一些东西也已经陈旧,所以选择了这本书<HTML5触摸界面设计与开发>来系统地学习和整理一下关于移动网站前端开发的知识体系. 之所以选择这本书,一是因为这本书比较新,2014年04月发的第一版.其二是因为作者Stephen Woods,这是Flickr团队的资深前端,Yahoo主页的Javascript技术平台正是出自此人之手. 接下来的时间里会陆续上传关于这本书学习的一