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中去
分享到:
相关推荐
5. **项目结构**:一个典型的Spring MVC Maven项目结构包括`src/main/java`(存放源代码)、`src/main/resources`(存放配置文件和静态资源)、`src/main/webapp/WEB-INF`(存放`web.xml`配置文件)等。 6. **配置...
5. **配置文件**:项目中的配置文件(可能在`config`目录下)包括Spring的bean配置文件(如`applicationContext.xml`)和Spring MVC的配置文件(如`servlet-context.xml`)。这些文件定义了Bean的实例化、依赖关系...
在 `pom.xml` 文件中,配置项目的依赖,包括 Spring MVC 和其他必要的库,例如 Spring Core、Spring Web、Spring Webmvc 等。 2. **配置 Spring MVC**:添加 Spring MVC 的依赖,通常版本号会写在 `pom.xml` 文件中...
5. **处理静态资源**:配置DispatcherServlet以处理静态资源,如CSS、JavaScript和图片,避免它们被Spring MVC拦截。 6. **打包和部署**:将项目打包成WAR文件,然后在Web服务器上部署。 【Spring MVC Showcase ...
Eclipse是一款广泛使用的集成开发环境(IDE),对于Java开发,包括Spring MVC项目,Eclipse 提供了丰富的插件和工具,使得开发过程更为高效和便捷。下面我们将深入探讨Spring MVC与Eclipse结合开发的相关知识点。 1. ...
Spring MVC 访问静态文件 Spring MVC 是一个基于Java的 Web 应用程序框架,提供了一个灵活的方式来构建Web应用程序。然而,在使用 Spring MVC 访问静态文件时,可能会出现问题,因为 DispatcherServlet 会拦截所有...
在本项目"spring mvc 项目"中,我们将深入探讨Spring MVC的使用,以及如何结合MyBatis和Oracle数据库进行数据处理。 1. **Spring MVC 框架** Spring MVC通过DispatcherServlet作为入口,接收HTTP请求并分发到相应...
Spring、Spring MVC 和 MyBatis 是Java开发中常用的三大开源框架,它们分别负责不同层面的职责:Spring 作为核心容器管理应用对象,Spring MVC 处理Web层的请求与响应,而MyBatis则作为持久层框架,简化了数据库操作...
在该系统中,`Controller`负责接收和处理用户请求,`Service`层处理业务逻辑,而`Model`对象则封装数据。`View`则负责渲染结果,通常使用JSP或Thymeleaf等模板引擎。Spring-MVC通过依赖注入(DI)和面向切面编程...
在JavaWeb开发中,Spring MVC和Tomcat服务器都承担着处理静态文件的角色,如CSS、JavaScript、图片等。本文将详细探讨这两种方式如何处理静态文件。 首先,我们来看Tomcat如何处理静态文件。Tomcat内置了一个名为`...
学习Spring MVC的过程中,可以参考官方文档、在线教程和视频课程,加深对每个组件和概念的理解。 这个入门项目提供了一个简单的Spring MVC应用实例,通过实际操作可以更好地理解框架的工作原理和使用方式。对于...
在 Spring MVC 中,`Model` 负责存储数据,`View` 负责渲染数据,而 `Controller` 则是处理用户请求并协调 Model 和 View 的中间层。通过 MVC 设计模式,Spring MVC 可以实现业务逻辑与用户界面的分离,提高代码的可...
在这个"spring mvc demo 简单框架搭建"中,我们将探讨如何基于Tomcat 7和JDK 1.7来配置和运行一个基本的Spring MVC项目。 首先,Spring MVC是Spring框架的一部分,它提供了一个灵活的MVC(Model-View-Controller)...
- `src/main/resources` 存放配置文件,例如 Spring 的 XML 配置文件,用于定义bean和数据源等。 - `src/main/webapp` 包含静态资源,如 HTML、CSS 和 JavaScript 文件。 2. **Spring MVC 工作原理** - 当用户...
- **WebContent/WEB-INF**:存放web.xml和静态资源文件。 通过这个简单的Spring MVC项目案例,你可以了解并实践Web应用的基本构建过程,掌握Spring MVC的核心组件和工作流程。同时,它也可以作为进一步学习Spring ...
"一个改进版的spring-mvc-showcase"是一个项目示例,它基于Spring MVC框架进行了一些优化和增强。Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序。它提供了一个灵活的模型-视图-控制器(MVC)架构,...
提供的两个文件,"spring3 MVC实战,手工搭建Spring3项目demo_敲敲代码跳跳舞……_百度空间.mht"和"Spring3中js-css-jpg-gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决_敲敲代码跳...
4. `libfilename.txt`:这是一个重要的文件,虽然实际的库文件没有上传,但这个文本文件列出了所需的库,对于运行Spring MVC项目来说,这些库(如Spring Framework、servlet API等)是必不可少的。 5. `WebContent`...
- `pom.xml`或`build.gradle`:构建文件,包含对Spring Boot、MyBatis和Spring MVC的依赖。 - `application.properties`或`application.yml`:Spring Boot的配置文件,可能包含数据库连接、服务器端口等配置。 - `...
打开 `pom.xml` 文件,添加以下内容来引入 Spring MVC 和其他必要的依赖: ```xml <groupId>org.springframework <artifactId>spring-webmvc <version>5.3.23 <groupId>javax.servlet <artifactId>...