`
cuitongxin
  • 浏览: 27066 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SpringMVC 静态资源访问加载配置

 
阅读更多

当你使用SpringMVC来做web开发时,经常会遇到如何配置静态资源加载的问题。

问题产生的根源,看如下web.xml中的配置:

<servlet>
		<servlet-name>springServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
	<servlet-name>springServlet</servlet-name>
	<url-pattern>/</url-pattern>
  </servlet-mapping>

 上面的Servlet配置会拦截你所有的请求,包括静态的资源*.css, *.html, *.htm, *.jpg, *.js, *.png ... 等等。

其实这些静态资源被拦截是没有意义的,那么如何避免这些不希望被拦截的资源被拦截呢?

主要有两种方式:

1、如果你的静态资源打包之后再项目的根目录下---注意这里一定是根目录,在WEB-INF目录下是不行的,即在你的项目的Webapp 目录下,那么可以采用配置:

<mvc:default-servlet-handler/>

 的方式到你的 spring-servlet.xml 中。

然后在你的web.xml 加入如下配置:

<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.css</url-pattern>
	</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>*.ico</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.gif</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.jpg</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.png</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.bmp</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.jpeg</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.swf</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.flv</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.xml</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.txt</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.htm</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>

 然后当你在访问静态资源是就不会被spring Servlet拦截了。

2. 采用 配置 如下代码到你的spring-servlet.xml 文件中的方式:

<mvc:resources mapping="/html/**" location="/WEB-INF/views/mqcloud/monitor/"/>

 注意,这种方式可以指定你的静态资源在你项目中的任何位置,包括在jar 里面,因为 配置中的 location 可以配置成 classpath:/com/ctx/....  的形式。

并且该方式不会像 第一中方式那样 要求静态资源文件放置到应用的根目录下面的。

 

注意:当两种方式在你的项目里面都配置了,那么会出现访问静态资源失败的问题,因此最好不要在项目里面同时配置这两种方式。

分享到:
评论

相关推荐

    springmvc静态资源访问

    本文将详细介绍如何在Spring MVC中配置和使用静态资源访问,并解释何时以及为何需要这样做。 #### 二、为什么需要处理静态资源 在Spring MVC应用中,通常会遇到以下几种情况: 1. **提高应用性能**:正确地配置...

    SpringMVC访问静态资源

    在本篇文章中,我们将深入探讨Spring MVC如何配置和管理静态资源的访问。 ### 1. 静态资源默认处理 Spring MVC默认会自动处理应用中的静态资源。在`DispatcherServlet`的配置中,有一个`...

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    这种方法的优点是不需要在SpringMVC的拦截器中进行繁琐的配置,而且默认的Servlet可以很高效地处理静态资源请求。不过,这种方法的缺点是,需要在web.xml中手动配置,而且可能会增加服务器的负载,因为静态资源需要...

    SpringMVC访问静态资源的方法

    本文将介绍如何在SpringMVC中配置访问静态资源。 首先,我们需要了解SpringMVC的默认配置。在`web.xml`文件中,`DispatcherServlet`通常被配置为监听所有URL模式(例如,`&lt;url-pattern&gt;/&lt;/url-pattern&gt;`),这意味...

    SpringMVC专栏8、RESTful案例static静态资源

    - 使用CDN(内容分发网络)服务可以提高静态资源的加载速度,尤其是对于地理位置分布广泛的用户。 - 压缩和合并CSS与JavaScript文件可以减少HTTP请求次数,提高页面加载速度。 - 使用缓存策略,例如设置HTTP响应...

    SpringMVC访问图片

    总的来说,Spring MVC访问图片主要涉及静态资源的配置、Controller的处理以及图片数据的获取方式。理解这些要点,可以确保你的Spring MVC应用能够流畅地处理图片的显示和访问。在实际项目中,还需要考虑性能优化,...

    SpringMVC+mysql框架

    2. **配置DispatcherServlet**:在web.xml中配置SpringMVC的入口点,包括加载配置文件、初始化参数等。 3. **编写配置文件**:创建spring-servlet.xml,配置HandlerMapping、ViewResolver、数据源、事务管理器等。 4...

    详解springmvc拦截器拦截静态资源

    然而,如果不正确地配置,拦截器可能会错误地拦截到静态资源,如 CSS、JavaScript 和图片等,导致页面加载缓慢或者功能异常。 静态资源通常是应用程序中不会经过后端处理的文件,它们通常存储在特定的目录下,如 `/...

    jetty整合springmvc例子

    - `src/main/webapp`: 存放Web应用资源,如WEB-INF下的web.xml和静态资源。 - `pom.xml`: Maven项目配置文件,定义依赖和构建过程。 5. **运行与测试** 通过命令行或者IDE中的Maven插件执行`mvn jetty:run`,...

    详解SpringMVC中设置静态资源不被拦截的问题

    此外,还可以考虑使用Spring Security等安全框架,它们提供了更灵活的控制方式,可以针对静态资源设定特殊的访问规则,而无需在拦截器中处理。 总的来说,Spring MVC中处理静态资源不被拦截的关键在于正确配置静态...

    SpringMVC.pdf

    5. 配置SpringMVC的springmvc-servlet.xml文件,包括视图解析器和静态资源映射等; 6. 将Spring和SpringMVC整合起来,配置Spring配置文件以扫描到SpringMVC中的Controller; 7. 准备MyBatis的配置文件,配置数据源和...

    SpringMVC+ExtJs4.2实例

    - `src/main/webapp`:Web应用的根目录,包括`WEB-INF`下的SpringMVC配置、`js`目录下的ExtJs4.2代码、`css`和`images`等静态资源。 - `web.xml`:Web应用的部署描述符,配置DispatcherServlet。 通过这个实例,...

    springMVC Spring mybatis swagger demo

    Swagger UI可以通过访问特定URL自动加载这些配置,生成可交互的文档。 总的来说,这个项目是一个综合性的示例,涵盖了现代Java Web开发中的多个关键组件,对于学习和理解SSM框架、Gradle构建工具以及API文档规范都...

    spring+springMVC+Mybatis框架整合

    一个典型的SSM整合后的项目文件结构通常包括以下几个部分:src/main/java(存放源代码),src/main/resources(存放配置文件),WEB-INF(存放web应用相关的配置文件,如web.xml),以及web目录(存放静态资源和...

    demo_SpringMVC.rar_+SpringMVC demo_DEMO_spring mvc_spring mvc de

    5. **其他可能的文件和目录**:可能包含静态资源(如 HTML、CSS、JavaScript 文件),或者用于测试的类。 **核心概念** 1. **DispatcherServlet**: Spring MVC 的核心组件,它是整个流程的调度者,负责接收 HTTP ...

    SpringMVC集成SpringSecurity

    6. **角色和权限**:SpringSecurity支持基于角色的访问控制(RBAC),可以为用户分配角色,并定义哪些URL或资源对应哪些角色,从而实现权限控制。 7. **自定义逻辑**:除了基本的配置,开发者还可以根据需求编写...

    SpringMVC_staticpage

    3. **静态资源处理**: SpringMVC可以通过配置允许直接访问项目中的静态资源目录,如`/static`, `/resources`等,这样可以直接返回静态HTML文件。 4. **预渲染(Prerendering)**: 当动态内容需要转化为静态页面时,...

    springMVC+cdn(qiniu+bootcss)

    综合来看,"springMVC+cdn(qiniu+bootcss)"项目利用SpringMVC构建Web应用,借助七牛云CDN加速静态资源的分发,同时利用BootCSS提升网页设计的美观性和用户体验。这样的组合不仅提高了应用的运行效率,还提升了用户的...

    springmvc-mybatis-bootstrap-v1.0

    同时,为了使静态资源(如Bootstrap的CSS和JS文件)能被正确访问,需要配置静态资源拦截器。例如,可以使用`&lt;mvc:resources&gt;`标签映射静态资源路径,以解决因过滤器导致的静态资源加载问题。对于字符编码问题,可以...

Global site tag (gtag.js) - Google Analytics