当我们在web.xml 中做如下配置的时候,DispatcherServlet 将会拦截所有的请求,包括对静态资源的请求(*.css,*.jpg,*.js....),这时候,如果我们没有相应的做一些配置上的调整的话,客户端将会出现404错误。为了解决这个问题,我们可以通过3种方式的配置来解决。
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
1. 在web.xml中加入如下配置,使得容器的默认servlet来响应对静态资源的请求,根据请求资源的类型,调整mapping的配置。
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
这样的配置性能应该是最高的,容器直接响应了客户端的请求,不需要再通过SpringMVC的框架了,缺点是,你的静态资源不能放在WEB-INF目录下了,必须和它处于同一级别。
对于不同的web 容器,默认的servlet名字有所区别:
Tomcat, Jetty, JBoss, and GlassFish 默认 Servlet的名字 -- "default"
Google App Engine 默认 Servlet的名字 -- "_ah_default"
Resin 默认 Servlet的名字 -- "resin-file"
WebLogic 默认 Servlet的名字 -- "FileServlet"
WebSphere 默认 Servlet的名字 -- "SimpleFileServlet"
2. 在spring mvc 的配置文件中加入如下一行:
<mvc:default-servlet-handler/>
优点:通过这一行的配置,框架中的ResourceHttpRequestHandler会帮你完成对静态资源的查找。缺点:同样不能访问位于 WEB-INF 下的资源
3.在spring mvc 配置中 通过 <mvc:resources/> 来指定对静态资源的映射,例如:
<mvc:annotation-driven/>
<mvc:resources location="/WEB-INF/images/" mapping="/images/**" />
在这里我们可以看到,我们能把静态资源放在WEB-INF下。框架也是通过ResourceHttpRequestHandler来最终找到我们请求的资源的。
相关推荐
七、Spring MVC如何访问到静态的文件:描述了如何配置Spring MVC来处理静态资源,如图片、JavaScript和CSS文件等。 八、Spring MVC请求如何映射到具体的Action中的方法:说明了如何配置映射器(HandlerMapping)将...
本文将详细介绍如何在Spring MVC中配置和使用静态资源访问,并解释何时以及为何需要这样做。 #### 二、为什么需要处理静态资源 在Spring MVC应用中,通常会遇到以下几种情况: 1. **提高应用性能**:正确地配置...
- 通常包含src/main/java目录下的Controller、Service、DAO层以及配置类,src/main/resources下可能有Spring MVC和Spring Security的配置文件,webapp下是静态资源和视图文件。 7. **学习重点**: - 理解Spring ...
在运行Demo时,启动Tomcat服务器,访问配置好的URL,可以看到Spring MVC接收到请求后,通过Spring管理的Service调用MyBatis执行数据库操作,最后返回结果到前端。 总的来说,Spring+Spring MVC+MyBatis的配置涉及到...
在本项目中,我们主要利用Spring框架,包括其核心模块Spring、MVC模块Spring MVC以及数据访问/集成模块Spring JDBC,结合MySQL数据库来构建一个基础的登录注册系统。以下是这个项目涉及的关键技术点: 1. **Spring...
在 Spring MVC 中,可以通过配置 `<mvc:resources>` 标签来指定静态资源的映射路径。例如: ```xml <mvc:resources mapping="/static/**" location="/WEB-INF/static/" /> ``` 这样设置后,客户端可以通过 `/static/...
3. **创建目录结构**:按照 Maven 的标准目录结构,创建 `src/main/java`(存放源代码)、`src/main/resources`(存放配置文件)和 `src/main/webapp`(存放静态资源和 WEB-INF 文件夹)。 4. **配置 ...
"spring mvc_04"教程展示了如何使用MultiActionController进行静态资源访问,虽然这不是最佳实践,但它有助于理解Spring MVC早期版本的用法。在实际开发中,推荐使用更现代的方法来处理静态资源,以提高性能和代码...
5. **处理静态资源**:配置DispatcherServlet以处理静态资源,如CSS、JavaScript和图片,避免它们被Spring MVC拦截。 6. **打包和部署**:将项目打包成WAR文件,然后在Web服务器上部署。 【Spring MVC Showcase ...
- `src/main/webapp`:Web应用目录,包含`WEB-INF`下的web.xml,以及静态资源(如HTML、CSS、JavaScript)和JSP页面。 4. **Controller**: Controller是Spring MVC的核心组件,处理来自客户端的请求。使用@...
#### 七、Spring MVC 如何访问静态资源 Spring MVC 提供了多种方式来处理静态资源,如 CSS、JavaScript 和图片等: 1. **资源映射**:通过 `<mvc:resources>` 或者 `@WebMvcConfigurer` 接口中重写 `...
3. **src/main/resources**:放置配置文件,如Spring的XML配置或Java配置,以及静态资源(如JS、CSS、图片)。 4. **Web-INF**:Web应用的特定目录,可能包含web.xml文件,用于配置DispatcherServlet和其他Servlet。...
6. **src**:源代码目录,通常分为两部分:`src/main/java` 存放 Java 代码,`src/main/resources` 存放静态资源和配置文件。在这个 Spring MVC 项目中,控制器(Controller)、模型(Model)、视图解析器(View ...
Spring MVC还提供了对静态资源的访问支持,如jpg、js、css文件的访问。请求映射到具体的Action中的方法时,可以通过注解的方式,如@RequestMapping来实现。拦截器的使用可以对请求进行预处理和后处理,拦截器的配置...
12. **MVC 注解驱动开发**:通过启用 `@EnableWebMvc` 或配置 `WebMvcConfigurer`,可以使用 MVC 注解简化配置,如自动配置视图解析器、静态资源处理等。 13. **RESTful 风格的支持**:Spring MVC 支持创建 RESTful...
- `src/main/webapp`:存放Web相关的资源,如静态文件(HTML、CSS、JavaScript)、JSP页面和Web-INF目录下的web.xml配置文件。 5. **配置与集成** 要将Spring MVC、MyBatis和Oracle整合,你需要完成以下步骤: -...
理解并合理配置过滤器链顺序,可以避免因过滤器配置不当导致的资源访问问题。 7. **安全头部**:为了增强安全性,SpringSecurity可以设置安全响应头,如`Content-Security-Policy`、`X-Frame-Options`等,限制脚本...
- `src/main/webapp`: Web 应用目录,有 `WEB-INF` 目录和静态资源。 - `web.xml`: Web 应用的部署描述符,配置了 DispatcherServlet。 - `spring-servlet.xml`: Spring MVC 的配置文件,可能包含了视图解析器、数据...
static存放静态资源,如CSS、JavaScript和图片。views存放JSP或Thymeleaf等视图模板文件。 在"spring-mvc-study.zip"项目中,我们可能能看到以下文件: 1. web.xml:配置了DispatcherServlet,指定了Spring MVC的...