`

Tomcat和Spring MVC对静态文件的处理

阅读更多
Spring MVC 和Tomcat对 静态文件的处理:

• 当spring这样配置的时候,我们会拦截所有的request其中也包括了js,css和image文件
<servlet>
        <servlet-name>xx</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>xx</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

那么我们会在xx-servlet.xml中加入下面几个配置达到对静态文件的处理
   <mvc:annotation-driven/>
    <mvc:resources mapping="/img/**" location="/img/" />
    <mvc:resources mapping="/js/**" location="/js/" />
    <mvc:resources mapping="/css/**" location="/css/" />

具体处理的流程:
1) ResourceHttpRequestHandler会拦截静态文件的请求
2) checkAndPrepare
检查request的类型
检查session是否过期
检查是否需要缓存
   3)getResource得到资源
3) setHeaders处理header
4) writeContent把resource的资源写到response中去

• 当然你也可以在web.xml中配置默认的处理了
<servlet>
        <servlet-name>static</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> static </servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>
<servlet-mapping>
        <servlet-name> static </servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

• 那我们在来看看tomcat的DefaultServlet做了些什么事情

1) tomcat的默认拦截器拦截了你的请求org.apache.catalina.servlets.DefaultServlet
2) serveResource处理你的资源
3) DirContext resources = getResources();得到tomcat的上下问资源
4) ResourceInfo resourceInfo = new ResourceInfo(path, resources);得到请求的资源
5) 吧资源写到response中去
分享到:
评论

相关推荐

    spring mvc restful service

    5. **项目结构**:一个典型的Spring MVC Maven项目结构包括`src/main/java`(存放源代码)、`src/main/resources`(存放配置文件和静态资源)、`src/main/webapp/WEB-INF`(存放`web.xml`配置文件)等。 6. **配置...

    Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

    5. **配置文件**:项目中的配置文件(可能在`config`目录下)包括Spring的bean配置文件(如`applicationContext.xml`)和Spring MVC的配置文件(如`servlet-context.xml`)。这些文件定义了Bean的实例化、依赖关系...

    spring mvc项目创建

    在 `pom.xml` 文件中,配置项目的依赖,包括 Spring MVC 和其他必要的库,例如 Spring Core、Spring Web、Spring Webmvc 等。 2. **配置 Spring MVC**:添加 Spring MVC 的依赖,通常版本号会写在 `pom.xml` 文件中...

    spring mvc demo

    5. **处理静态资源**:配置DispatcherServlet以处理静态资源,如CSS、JavaScript和图片,避免它们被Spring MVC拦截。 6. **打包和部署**:将项目打包成WAR文件,然后在Web服务器上部署。 【Spring MVC Showcase ...

    Spring MVC eclipse开发(Demo源码)

    Eclipse是一款广泛使用的集成开发环境(IDE),对于Java开发,包括Spring MVC项目,Eclipse 提供了丰富的插件和工具,使得开发过程更为高效和便捷。下面我们将深入探讨Spring MVC与Eclipse结合开发的相关知识点。 1. ...

    Spring MVC访问静态文件_动力节点Java学院整理

    Spring MVC 访问静态文件 Spring MVC 是一个基于Java的 Web 应用程序框架,提供了一个灵活的方式来构建Web应用程序。然而,在使用 Spring MVC 访问静态文件时,可能会出现问题,因为 DispatcherServlet 会拦截所有...

    spring mvc 项目

    在本项目"spring mvc 项目"中,我们将深入探讨Spring MVC的使用,以及如何结合MyBatis和Oracle数据库进行数据处理。 1. **Spring MVC 框架** Spring MVC通过DispatcherServlet作为入口,接收HTTP请求并分发到相应...

    spring+spring mvc+mybatis配置Demo

    Spring、Spring MVC 和 MyBatis 是Java开发中常用的三大开源框架,它们分别负责不同层面的职责:Spring 作为核心容器管理应用对象,Spring MVC 处理Web层的请求与响应,而MyBatis则作为持久层框架,简化了数据库操作...

    基于spring-MVC的在线测试系统(客观题)

    在该系统中,`Controller`负责接收和处理用户请求,`Service`层处理业务逻辑,而`Model`对象则封装数据。`View`则负责渲染结果,通常使用JSP或Thymeleaf等模板引擎。Spring-MVC通过依赖注入(DI)和面向切面编程...

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

    在JavaWeb开发中,Spring MVC和Tomcat服务器都承担着处理静态文件的角色,如CSS、JavaScript、图片等。本文将详细探讨这两种方式如何处理静态文件。 首先,我们来看Tomcat如何处理静态文件。Tomcat内置了一个名为`...

    Spring MVC入门项目

    学习Spring MVC的过程中,可以参考官方文档、在线教程和视频课程,加深对每个组件和概念的理解。 这个入门项目提供了一个简单的Spring MVC应用实例,通过实际操作可以更好地理解框架的工作原理和使用方式。对于...

    demo_SpringMVC.rar_+SpringMVC demo_DEMO_spring mvc_spring mvc de

    在 Spring MVC 中,`Model` 负责存储数据,`View` 负责渲染数据,而 `Controller` 则是处理用户请求并协调 Model 和 View 的中间层。通过 MVC 设计模式,Spring MVC 可以实现业务逻辑与用户界面的分离,提高代码的可...

    spring mvc demo 简单框架搭建

    在这个"spring mvc demo 简单框架搭建"中,我们将探讨如何基于Tomcat 7和JDK 1.7来配置和运行一个基本的Spring MVC项目。 首先,Spring MVC是Spring框架的一部分,它提供了一个灵活的MVC(Model-View-Controller)...

    简单纯粹的Spring MVC架构J2EE项目

    - `src/main/resources` 存放配置文件,例如 Spring 的 XML 配置文件,用于定义bean和数据源等。 - `src/main/webapp` 包含静态资源,如 HTML、CSS 和 JavaScript 文件。 2. **Spring MVC 工作原理** - 当用户...

    简单spring mvc框架项目

    - **WebContent/WEB-INF**:存放web.xml和静态资源文件。 通过这个简单的Spring MVC项目案例,你可以了解并实践Web应用的基本构建过程,掌握Spring MVC的核心组件和工作流程。同时,它也可以作为进一步学习Spring ...

    一个改进版的spring-mvc-showcase

    "一个改进版的spring-mvc-showcase"是一个项目示例,它基于Spring MVC框架进行了一些优化和增强。Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序。它提供了一个灵活的模型-视图-控制器(MVC)架构,...

    实战spring mvc

    提供的两个文件,"spring3 MVC实战,手工搭建Spring3项目demo_敲敲代码跳跳舞……_百度空间.mht"和"Spring3中js-css-jpg-gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决_敲敲代码跳...

    spring mvc web demo(helloworld)

    4. `libfilename.txt`:这是一个重要的文件,虽然实际的库文件没有上传,但这个文本文件列出了所需的库,对于运行Spring MVC项目来说,这些库(如Spring Framework、servlet API等)是必不可少的。 5. `WebContent`...

    Spring boot+mybatis+Spring MVC

    - `pom.xml`或`build.gradle`:构建文件,包含对Spring Boot、MyBatis和Spring MVC的依赖。 - `application.properties`或`application.yml`:Spring Boot的配置文件,可能包含数据库连接、服务器端口等配置。 - `...

    Spring mvc 环境搭建(maven构建)

    打开 `pom.xml` 文件,添加以下内容来引入 Spring MVC 和其他必要的依赖: ```xml &lt;groupId&gt;org.springframework &lt;artifactId&gt;spring-webmvc &lt;version&gt;5.3.23 &lt;groupId&gt;javax.servlet &lt;artifactId&gt;...

Global site tag (gtag.js) - Google Analytics