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读取操作返回给客户端。
上面学习,如果有错误,希望大家提出,共同提高,谢谢。相关文章:

第五篇:Visual Studio 2008 Web开发使用的新特性
第五篇:Visual Studio 2008 Web开发使用的新特性 本篇翻译自MSDN。 .NET Framwork 3.5与Visual Studio 2008 包含很多新特性。AJAX的Web开发人员支持与综合查询语言(LINQ)是其中最重要的更新。此外还包含一些新的服务器端控件以及客户端对象库…

Jenkins使用Publish Over FTP Plugin插件上传FTP详解
一、安装插件【Publish Over FTP】 二、在【系统管理】->【系统设置】->【Publish over FTP】->点击【增加】按钮,增加一个要连接的FTP: FTP Server Name:FTP名字 Hostname:主机IP或者域名 Username:ftp登陆用…
Matlab与数据结构 -- 求向量或矩阵的最大值
本图文介绍了Matlab中求向量或矩阵最大值的方法。
web应用的绝对路径和相对路径
经常写web工程,就会涉及很多路径问题,今天复习下绝对路径和相对路径,以提醒自己下次不要以为路径问题头疼。 1.绝对路径和相对路径 相对路径:helloworld ./helloworld ../helloworld 这样的都是相对路径绝对路径&…

IE7外觀優化
众所周知,在Windows Vista的默认设置中,传统的文件菜单消失了,大部分过去通过菜单执行的任务如今由工具栏提供,或者在相应选择项的右键属性里。尽管这种改变使页面布局更简洁,但似乎许多用户并不认可或者至少说并不习惯…

使用GPUImageView录制视频保存后出现绿边
2019独角兽企业重金招聘Python工程师标准>>> 最近在使用GPUimageView做视频录制功能,录完后发现保存的视频右边有绿边,觉得好奇怪呀,为什么会这样呢?于是上网找资料,发现了这么一个说法:GPU和视…
Matlab与数据结构 -- 搜索向量或矩阵中非零元素的位置
本图文介绍了Matlab中搜索向量或矩阵中非零元素位置的方法。
jdk7新特性学习笔记
jdk7新特性学习笔记 从网络down了视频看,记录下学过的东西。1.二进制字面量 JDK7开始,可以用二进制来表示整数(byte,short,int和long),语法:在二进制数值前面加 0b或者0B例如:int x 0b11112.数字字面量可以…

2008开年大礼:《Application = Code + Markup》中文版面世
Charles Petzold的又一部经典力作《Application Code Markup》中文版终于要面世了。成为2008 开年大礼。相信有很多对WPF有兴趣,但又苦于没有经典书籍来支撑的朋友都一直在期待着这本书的中文版上市,博文视点让这一期待成为现实。 与大家一样都很兴奋。…

近一个月的学习总结(4.8—5.12)
Java-se基础知识的学习已经告一段落,对自己这一个月的知识体系做一个大致的总结: 1.Java语言基础(基础完成) 2.面向对象基础(封装、继承、多态)(基础完成) 3.抽象类、接口࿰…
利用BP神经网络教计算机识别语音特征信号(代码部分SS)
本图文已经更新,详细地址如下: http://blog.csdn.net/lsgo_myp/article/details/54094884

springmvc配置DispatcherServlet拦截url注意事项
<!-- 前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 加载springmvc配置 --><init-param><param-name>contex…

sql server面试题
本面试题由2344095 (有心人)整理, 由ashzs((可以包含中文字符)) 解答,感谢二位!1.磁盘柜上有14块73G的磁盘, 数据库为200G 大小包括日志文件,如何设置磁盘(要说明这14磁盘是怎么用的)?2.有两服务器群集,分别…
利用BP神经网络教计算机识别语音特征信号(代码部分SSR)
本图文已经更新,详细地址如下: http://blog.csdn.net/lsgo_myp/article/details/54094884

JDBC使用步骤
JDBC编程步骤: 一、注冊载入JDBC驱动程序; 注冊载入驱动driver。也就是强制类载入:其注冊载入JDBC驱动有三种方法: 方法一:Class.forName(DriverName); 当中DriverNameDriver包名。Driver类名;…

在mac下搭建java开发环境
刚刚从windows系统转到使用mac系统,感觉不是特别熟悉,需要一定的适应时间。下面简单介绍一下mac下搭建基本的java开发环境。 1.安装jdk 安装jdk1.7后,发现不需要进行环境变量配置,直接在terminal中就能使用java和javac命令了。j…

IT项目管理入门知识
转载于:https://www.cnblogs.com/sophia194910/p/6854462.html
什么是BP神经网络?
BP人工神经网络原理

mac下的intellij idea常用快捷键
最近用mac进行开发,纪录下mac下的intellij idea的快捷键,方便以后查询。 command点到具体方法 查看调用 commandN查找类 commandshiftN查找文件 commandR替换 commandY 删除行 commandX剪切删除行 commandw 用光标圈起代码 commandD复制一行 com…

struct和union的大小问题
union类型以其中size最大的为其大小struct类型以其中所有size大小之和为其大小 #include<iostream>usingnamespacestd;intmain(){ typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; cout<…
利用BP神经网络教计算机识别语音特征信号(代码部分SL)
本图文已经更新,详细地址如下: http://blog.csdn.net/lsgo_myp/article/details/54094884

Redis相关命令
一、命令示例 1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX: #在Shell命令行下启动Redis客户端工具。/> redis-cli#清空当前选择的数据库,以便于对后面示例的理解。redis 127.0.0.1:6379> flushdbOK#添加String类型的模拟数据。redis 127.0.0.1:6379> set myk…
手把手 | 教你爬下100部电影数据:R语言网页爬取入门指南
前言 网页上的数据和信息正在呈指数级增长。如今我们都使用谷歌作为知识的首要来源——无论是寻找对某地的评论还是了解新的术语。所有这些信息都已经可以从网上轻而易举地获得。 网络中可用数据的增多为数据科学家开辟了可能性的新天地。我非常相信网页爬取是任何一个数据科学…

如何在OSCOMMERCE中安装中文语言包
步骤如下: 下载中文语言包,可以从以下连结下载 http://www.oscommerce.com/community/contributions,1054 安装步骤如下: (演示地址:http://www.MedOnclick.com) 1. 打开你下载的包含本语言包的压缩文件(cosc-v0.3.zip)。 2. 将…
利用BP神经网络教计算机识别语音特征信号(代码部分SLR)
本图文已经更新,详细地址如下: http://blog.csdn.net/lsgo_myp/article/details/54094884

Intellij Idea 生成serialVersionUID的方法
默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告。如果需要ide提示生成serialVersionUID,那么需要做以下设置: 1、setting->Inspections->Serialization issues,将serialzable class withou…

小牛生产小牛的问题解决集粹
问题:一只刚出生的小牛,4年后生一只小牛,以后每年生一只。现有一只刚出生的小牛,问N年后共有牛多少只?1.原始笨方法privateintComput(intyears) { //初始化为1头牛 int count 1; …

构建基于Chromium的应用程序(Winform程序加载Html页面)
chromium是google chrome浏览器所采用的内核,最开始由苹果的webkit发展而出,由于webkit在发展上存在分歧,而google希望在开发上有更大的自由度,2013年google决定自己开发webcore的分支,叫做Blink引擎,而后g…
机器就能绘制这样的作品,你还去写生吗?(续)
本文介绍了利用程序让计算机把输入图像呈现铅笔素描画和彩绘画效果的算法原理。

Apache工具类ToStringBuilder用法简介
ToStringBuilder比较适合在打日志时,输出参数的信息,特别是在参数为对象时,该工具类能够很方便的自动打印对象中的属性值。 package test; /** * * author zhengtian * time 2012-6-28 */ public class User { privat…