`
snake_hand
  • 浏览: 629985 次
社区版块
存档分类
最新评论

SpringMVC访问静态资源

 
阅读更多

1、如果只配置拦截类似于*.do格式的url,则对静态资源的访问是没有问题的,如下:

<!-- SpringMVC核心分发器 -->
    <servlet> 
        <servlet-name>dispatcherServlet</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <init-param> 
            <param-name>contextConfigLocation</param-name> 
            <param-value>classpath*:config/dispatcher-servlet.xml</param-value> 
        </init-param> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <!-- 映射*.do的请求 -->
    <servlet-mapping> 
        <servlet-name>dispatcherServlet</servlet-name> 
        <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 

2、如果配置拦截了所有的请求,如下:

<!-- SpringMVC核心分发器 -->
    <servlet> 
        <servlet-name>dispatcherServlet</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <init-param> 
            <param-name>contextConfigLocation</param-name> 
            <param-value>classpath*:config/dispatcher-servlet.xml</param-value> 
        </init-param> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <!-- 映射所有的请求 -->
    <servlet-mapping> 
        <servlet-name>dispatcherServlet</servlet-name> 
        <url-pattern>/</url-pattern> 
    </servlet-mapping> 

这样的配置,会造成js文件、css文件、图片文件等静态资源无法访问。

1)以图片为例子,将一张a.png的图片存放到web项目根目录下的/img目录中。

2)在jsp页面中访问这张图片

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
        访问图片静态资源:<br>
        <div>
            <img alt="图片资源" src="../img/a.png">
        </div>
</body>
</html>

3)通过Controller访问这个jsp

package cn.luxh.app.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value="/res")
public class StaticResourceAccessController {
    
    @RequestMapping(value="/staticRes")
    public String accessRes() {
        System.out.println("访问静态资源");
        return "getStaticRes";
    }
}

4)访问结果如下:

可以看到图片无法访问。

5)SpringMVC提供了<mvc:resources />标签来处理这个问题,在SpringMVC的配置文件dispatcher-servlet.xml中做如下配置:

        <!-- 静态资源访问 -->
        <!-- 类似于:/img/** 的url请求的资源都到/img/目录下查找  -->
        <mvc:resources location="/img/" mapping="/img/**"/>

6)配置好之后,重新访问,OK。

3、为了方便,可以把js文件、css文件、图片文件统一放到resource目录下的各自子目录中,如/resource/js、/resource/css/resource/img。然后做一个统一配置就可以了。

 

<!-- 静态资源访问 -->
<mvc:resources location="/resource/**" mapping="/resource/**"/>

 

 

 

 

分享到:
评论

相关推荐

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

    本篇文章将总结Spring MVC访问静态资源的三种主要方式,帮助开发者更好地理解和配置项目。 ### 方案一:利用Tomcat的默认Servlet 在Spring MVC的`DispatcherServlet`拦截所有请求(例如`/`)的情况下,静态资源...

    SpringMVC访问静态资源的方法

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

    springmvc如何访问静态资源

    该txt文档主要讲了在利用springmvc框架来搭建项目时有什么方法可以访问静态资源。

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

    在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...

    springmvc静态资源访问

    ### Spring MVC 中静态资源访问详解 #### 一、引言 在Web开发中,静态资源如CSS、JavaScript、图片等是构建用户界面不可或缺的一部分。Spring MVC作为一款流行的Java Web框架,提供了灵活的方式来处理这些静态资源...

    SpringMvc静态资源访问实现方法代码实例

    SpringMvc静态资源访问实现方法代码实例介绍了如何在SpringMvc框架中访问静态资源的方法代码实例。该实例通过示例代码详细介绍了如何配置SpringMvc来访问静态资源,从而为开发者提供了一定的参考价值。 首先,我们...

    springmvc-demo03-静态资源访问处理.zip

    在Spring MVC框架中,静态资源处理是一个至关重要的部分,它涉及到网页应用中JavaScript、CSS、图片等非Java代码文件的访问。Spring MVC默认情况下,并不直接处理这些静态资源,而是交由Web服务器(如Tomcat)来处理...

    SSM笔记-SpringMVC的CRUD和静态资源

    SpringMVC默认不处理静态资源(如CSS、JavaScript、图片等),为了使这些资源正常访问,我们需要在`web.xml`或`DispatcherServlet`的配置中添加映射规则。 ```xml &lt;!-- web.xml --&gt; &lt;servlet-name&gt;dispatcher ...

    springMVC静态资源

    例如,我们可以创建一个拦截器来记录静态资源的访问日志: ```java @Component public class StaticResourceInterceptor implements HandlerInterceptor { @Override public boolean preHandle...

    springMVC3学习(四)--访问静态文件如js,jpg,css(源码)

    springMVC3学习(四)--访问静态文件如js,jpg,css(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/25987411

    SpringMVC访问图片

    在Spring MVC框架中,访问图片是一项常见的需求,它涉及到静态资源的处理。Spring MVC作为一个强大的MVC框架,不仅能够处理动态请求,也能有效地管理和提供静态资源,如图片、CSS样式表和JavaScript文件等。本篇将...

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

    本节我们将深入探讨RESTful原则与`static`目录如何协同工作,以及如何在Spring MVC项目中有效地管理静态资源。 首先,RESTful是一种软件架构风格,它基于HTTP协议,通过URI(统一资源标识符)来定位资源,使用HTTP...

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

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

    SpringMVC使用的Swagger UI静态资源

    **Spring MVC 使用 Swagger UI 静态资源** Swagger 是一个强大的工具,专为 RESTful API 设计,它允许开发者通过 YAML 或 JSON 语言编写接口定义,进而生成清晰、交互式的文档,同时支持代码生成,方便客户端和...

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

    为了确保静态资源能够正常访问,我们需要在 Spring MVC 的配置中明确指定它们的映射路径,如下所示: ```xml **" location="/static/resources" /&gt; **" location="/static/css/" /&gt; **" location="/static/images/...

    SpringMVC框架架构介绍

    三、访问静态资源: Spring MVC允许通过配置访问静态文件,如图片、JavaScript和CSS,这通常在web.xml或Spring配置文件中设置。 四、请求映射到Action方法: 使用@RequestMapping注解,可以将HTTP请求映射到特定的...

    SpringMVC demo 完整源码实例下载

    `src`目录通常是源代码存放的地方,而`WebContent`则包含了Web应用的静态资源和部署相关的文件,如HTML、CSS、JavaScript以及Web应用的入口点`WEB-INF/web.xml`。 `build`目录则可能包含编译后的Java类文件、打包后...

    jetty整合springmvc例子

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

    SpringMVC 入门小程序

    - `src/main/webapp`:Web应用目录,包含`WEB-INF`下的`web.xml`,以及静态资源(如HTML、CSS、JS)。 ### 5. 主要组件 - **DispatcherServlet**:前端控制器,接收所有请求,根据配置进行分发。 - **...

Global site tag (gtag.js) - Google Analytics