`
yjhexy
  • 浏览: 332297 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

tomcat 对静态资源的处理 —— Default Servlet

阅读更多

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

 

 

分享到:
评论

相关推荐

    Tomcat中对静态资源的处理教程

    在默认的 web.xml 中,配置了一个 DefaultServlet 用于处理静态资源,它支持缓存和断点续传。 DefaultServlet 的基本处理过程如下: 查找资源是否存在缓存 检查是否满足可选 If 头域指定的条件 设置响应头域,如 ...

    JavaWeb项目中springmvc和tomcat对静态文件的处理

    Spring MVC还提供了一个`&lt;mvc:default-servlet-handler/&gt;`标签,用于将对静态资源的处理委托给Tomcat的`defaultServlet`。这意味着,对于未被Spring MVC控制器处理的请求,Spring MVC会将其转发给Tomcat来处理,这样...

    Tomcat无法加载css和js等静态资源文件的解决思路

    这里,注释掉`&lt;servlet-class&gt;`标签内的Jetty类,或者直接删除整个servlet配置,以避免Jetty的DefaultServlet干扰Tomcat的静态资源处理。保存并重新部署应用后,应该能够正常访问静态资源。 此外,还有其他可能导致...

    百度UEditor 支持tomcat虚拟路径映射

    `DefaultServlet`是Tomcat内置的Servlet,可以处理静态资源。 接着,你需要将UEditor的静态资源文件部署到Tomcat的Web应用目录下,如`/WEB-INF/static/ueditor`。这样,当浏览器请求`/ueditor/xxx.js`时,Tomcat会...

    如何访问到静态的文件,如jpg,js,css..docx

    **核心思想**:利用Tomcat自带的`defaultServlet`来处理静态文件请求,避免它们进入Spring MVC处理流程。 **配置方法**: 1. **修改`web.xml`文件**:在`web.xml`中配置`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素,确保...

    默认 Servlet.docx

    在Apache Tomcat服务器中,DefaultServlet是内置的Servlet,它的主要职责是提供静态内容服务和目录列表功能。在深入讨论如何自定义DefaultServlet之前,我们先了解其基本工作原理。 DefaultServlet的全局声明通常...

    jsp-解决文件上传后重启Tomcat时文件自动删除问题.docx

    在jsp项目中,我们通常使用DefaultServlet来处理文件上传请求。但是,在重启Tomcat服务器或清理缓存时,上传的文件会自动删除。这是因为Tomcat服务器在启动时会同步本地文件,如果本地文件夹不存在,上传的文件将被...

    apache-tomcat-7.0.90-src

    例如,`org.apache.catalina.servlets.DefaultServlet`是处理静态资源的默认Servlet,而`org.apache.coyote.http11.Http11Processor`则负责HTTP请求的解析和响应的构建。 2. **JSP相关源码**:在源码中,`webapps`...

    Spring Boot项目导出war包放到tomcat运行跳转到页面出现404报错

    &lt;servlet-class&gt;org.apache.catalina.servlets.DefaultServlet&lt;/servlet-class&gt; &lt;param-name&gt;debug &lt;param-value&gt;0 &lt;load-on-startup&gt;1 &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;default&lt;/servlet-...

    SpringMVC访问静态资源的方法

    这相当于关闭了Spring对静态资源的处理,转而使用Tomcat的默认行为。 ```xml &lt;mvc:default-servlet-handler/&gt; ``` 2. 自定义ResourceHandlerRegistry:在SpringMVC的配置类中,你可以通过扩展`...

    Tomcat优化1

    在 Tomcat 中,DefaultServlet 和 JspServlet 是两个重要的 Servletvailable,它们负责处理静态资源和 JSP 文件的请求。DefaultServlet 负责处理静态资源,如 HTML、CSS、JavaScript 等文件,而 JspServlet 负责处理...

    Nginx+tomcat配置集群负载均衡实例

    由于Tomcat处理动态内容的能力较强,但在处理静态资源时效率较低,因此通常与Nginx配合使用,让Nginx负责静态资源,Tomcat处理动态请求。 配置Nginx+Tomcat集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多...

    SpringMVC访问静态资源的三种方式小结

    方案一适用于希望完全控制静态资源处理的情况,方案二适用于需要在Spring MVC内管理静态资源的场景,而方案三则提供了一种简洁的解决方案,不需要对每种静态资源类型进行显式配置。理解并灵活运用这些方法,可以提高...

    tomcat5.5源代码

    源代码中包含了实现这些规范的类和接口,例如`org.apache.catalina.servlets.DefaultServlet`处理静态资源请求,而`org.apache.jasper`包则包含JSP编译和执行的相关组件。 2. **容器架构**: Tomcat的架构基于...

    java 静态页面开发

    例如,在web.xml中配置一个DefaultServlet来处理所有未被其他Servlet处理的请求。 6. **调试与部署**:在本地开发环境中,可以使用IDE(如Eclipse或IntelliJ IDEA)内置的Tomcat服务器进行调试。部署时,将整个项目...

    解决springMVC 跳转js css图片等静态资源无法加载的问题

    这种配置可能导致静态资源请求被DispatcherServlet误处理,而不是由Tomcat的DefaultServlet来处理,从而引发404错误。 解决这个问题有多种方法,这里介绍两种常见的方式: ### 方法一:在`web.xml`中添加默认...

    java笔记jsp,servlet.docx

    在Tomcat的`conf/web.xml`中,默认已经注册了一个名为`DefaultServlet`的缺省Servlet,用于处理静态资源和目录列表等。 ```xml &lt;!-- Default Servlet配置 --&gt; &lt;servlet&gt; &lt;servlet-name&gt;default&lt;/servlet-name&gt; ...

    apache2.2 + tomcat6 配置方式

    配置Apache2.2与Tomcat6的目的是利用Apache处理静态内容的高效性能,同时让Tomcat处理动态Java应用,以达到最佳性能。 4. **配置步骤**: - **安装Apache2.2**:首先,确保Apache服务器已经在系统上正确安装,...

    6版本Tomcat源码

    `GlobalErrorHandler`类处理全局的错误,`DefaultServlet`处理静态资源请求。异常处理和错误页面的配置也在源码中体现。 10. **线程模型**: Tomcat使用工作线程池(`Executor`)来处理请求。`Executor`接口和`...

Global site tag (gtag.js) - Google Analytics