首先所有的请求进入tomcat,都会流经servlet,如果没有匹配到任何应用指定的servlet,那么就会流到默认的servlet。
默认的servlet是配置在$catalina/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>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
tomcat初始化一个context的时候就会初始化context下面所有的 servlet,包括这个默认的servlet。
如图:
图待添加
它就是从servletContext里面加载的资源中去取出需要的资源,然后加载进来,并且判断相应的mime类型设置不同的HTTP head,然后输出到页面上。内容还是挺简单的。
其中还有mime的mapping:
<mime-mapping>
<extension>abs</extension>
<mime-type>audio/x-mpeg</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ai</extension>
<mime-type>application/postscript</mime-type>
</mime-mapping>
<mime-mapping>
<extension>aif</extension>
<mime-type>audio/x-aiff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>aifc</extension>
<mime-type>audio/x-aiff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>aiff</extension>
<mime-type>audio/x-aiff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>aim</extension>
<mime-type>application/x-aim</mime-type>
</mime-mapping>
<mime-mapping>
<extension>art</extension>
<mime-type>image/x-jg</mime-type>
</mime-mapping>……后面太多贴不出来了
分享到:
相关推荐
在默认的 web.xml 中,配置了一个 DefaultServlet 用于处理静态资源,它支持缓存和断点续传。 DefaultServlet 的基本处理过程如下: 查找资源是否存在缓存 检查是否满足可选 If 头域指定的条件 设置响应头域,如 ...
Spring MVC还提供了一个`<mvc:default-servlet-handler/>`标签,用于将对静态资源的处理委托给Tomcat的`defaultServlet`。这意味着,对于未被Spring MVC控制器处理的请求,Spring MVC会将其转发给Tomcat来处理,这样...
这里,注释掉`<servlet-class>`标签内的Jetty类,或者直接删除整个servlet配置,以避免Jetty的DefaultServlet干扰Tomcat的静态资源处理。保存并重新部署应用后,应该能够正常访问静态资源。 此外,还有其他可能导致...
`DefaultServlet`是Tomcat内置的Servlet,可以处理静态资源。 接着,你需要将UEditor的静态资源文件部署到Tomcat的Web应用目录下,如`/WEB-INF/static/ueditor`。这样,当浏览器请求`/ueditor/xxx.js`时,Tomcat会...
**核心思想**:利用Tomcat自带的`defaultServlet`来处理静态文件请求,避免它们进入Spring MVC处理流程。 **配置方法**: 1. **修改`web.xml`文件**:在`web.xml`中配置`<servlet>`和`<servlet-mapping>`元素,确保...
在Apache Tomcat服务器中,DefaultServlet是内置的Servlet,它的主要职责是提供静态内容服务和目录列表功能。在深入讨论如何自定义DefaultServlet之前,我们先了解其基本工作原理。 DefaultServlet的全局声明通常...
在jsp项目中,我们通常使用DefaultServlet来处理文件上传请求。但是,在重启Tomcat服务器或清理缓存时,上传的文件会自动删除。这是因为Tomcat服务器在启动时会同步本地文件,如果本地文件夹不存在,上传的文件将被...
例如,`org.apache.catalina.servlets.DefaultServlet`是处理静态资源的默认Servlet,而`org.apache.coyote.http11.Http11Processor`则负责HTTP请求的解析和响应的构建。 2. **JSP相关源码**:在源码中,`webapps`...
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <param-name>debug <param-value>0 <load-on-startup>1 </servlet> <servlet-mapping> <servlet-name>default</servlet-...
这相当于关闭了Spring对静态资源的处理,转而使用Tomcat的默认行为。 ```xml <mvc:default-servlet-handler/> ``` 2. 自定义ResourceHandlerRegistry:在SpringMVC的配置类中,你可以通过扩展`...
在 Tomcat 中,DefaultServlet 和 JspServlet 是两个重要的 Servletvailable,它们负责处理静态资源和 JSP 文件的请求。DefaultServlet 负责处理静态资源,如 HTML、CSS、JavaScript 等文件,而 JspServlet 负责处理...
由于Tomcat处理动态内容的能力较强,但在处理静态资源时效率较低,因此通常与Nginx配合使用,让Nginx负责静态资源,Tomcat处理动态请求。 配置Nginx+Tomcat集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多...
方案一适用于希望完全控制静态资源处理的情况,方案二适用于需要在Spring MVC内管理静态资源的场景,而方案三则提供了一种简洁的解决方案,不需要对每种静态资源类型进行显式配置。理解并灵活运用这些方法,可以提高...
源代码中包含了实现这些规范的类和接口,例如`org.apache.catalina.servlets.DefaultServlet`处理静态资源请求,而`org.apache.jasper`包则包含JSP编译和执行的相关组件。 2. **容器架构**: Tomcat的架构基于...
例如,在web.xml中配置一个DefaultServlet来处理所有未被其他Servlet处理的请求。 6. **调试与部署**:在本地开发环境中,可以使用IDE(如Eclipse或IntelliJ IDEA)内置的Tomcat服务器进行调试。部署时,将整个项目...
这种配置可能导致静态资源请求被DispatcherServlet误处理,而不是由Tomcat的DefaultServlet来处理,从而引发404错误。 解决这个问题有多种方法,这里介绍两种常见的方式: ### 方法一:在`web.xml`中添加默认...
在Tomcat的`conf/web.xml`中,默认已经注册了一个名为`DefaultServlet`的缺省Servlet,用于处理静态资源和目录列表等。 ```xml <!-- Default Servlet配置 --> <servlet> <servlet-name>default</servlet-name> ...
配置Apache2.2与Tomcat6的目的是利用Apache处理静态内容的高效性能,同时让Tomcat处理动态Java应用,以达到最佳性能。 4. **配置步骤**: - **安装Apache2.2**:首先,确保Apache服务器已经在系统上正确安装,...
`GlobalErrorHandler`类处理全局的错误,`DefaultServlet`处理静态资源请求。异常处理和错误页面的配置也在源码中体现。 10. **线程模型**: Tomcat使用工作线程池(`Executor`)来处理请求。`Executor`接口和`...