我们在进行springMVC开发时,必定会在jsp页面引入js文件、img文件和css文件。大多数人会将这些分类存放在WebRoot文件下新建的文件夹下面。同时,会在web.xml文件中配置拦截所有请求。这样就造成了页面无法访问到js、img和css文件夹中的文件了。

在SpringMVC中可以利用 <mvc:resources location="/img/" mapping="/img/**"/>来访问。从而解决了上述问题。

下面是,我写的一个demo。

先看看其它文件。

web.xml(这个文件写好后几乎不用再进行修改了):

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
   <servlet-name>SpringMVC</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <!-- 设置开启时的导入配置文件 。可以不是必须的文件名称,可自定义-->
   <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:config/*-servlet.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup> <!-- 启动tomcat时启动springMFC -->
  </servlet>
  <servlet-mapping>
   <servlet-name>SpringMVC</servlet-name>
   <url-pattern>/</url-pattern><!-- 拦截所有请求 -->
  </servlet-mapping>
</web-app>
先看显示图片的:img.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'hello.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

</head>
 
  <body>
    你好SpringMVC!!!<br/>
   <h4>显示一张图片</h4>
   <br/>
   <img alt="图片" src="img/we.jpg">
    </div>
  </body>
</html>

在java文件中:

package com.yx.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class MultiController extends MultiActionController {

public ModelAndView img(HttpServletRequest request,HttpServletResponse response){
  System.out.println("-----img-------");
  return new ModelAndView("/img");
  
 }
 public ModelAndView js(HttpServletRequest request,HttpServletResponse response){
  System.out.println("-----js-------");
  return new ModelAndView("/testJS");
  
 }
}

以上文件与前面讲的十分的相似,改动不大。

下面是spring的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans
 xmlns:context="http://www.springframework.org/schema/context
 xmlns:p="http://www.springframework.org/schema/p
 xmlns:mvc="http://www.springframework.org/schema/mvc
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context.xsd 
      http://www.springframework.org/schema/mvc 
      http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

<!-- 常规单class多方法bean -->
 <bean name="/test/multi" class="com.yx.controller.MultiController">
  <property name="methodNameResolver">
   <ref bean="paramMethodResolver"/>
  </property>
 </bean>
 <!-- 常规单class单方法bean -->
 <bean name="/test/hello" class="com.yx.controller.HelloSpringMVCController"></bean>
 
 
 <!-- 静态资源访问 -->
   <mvc:resources location="/img/" mapping="/img/**"/>
   <mvc:resources location="/js/" mapping="/js/**"/>
   <!--以上两句就是设置spring的拦截器不对img文件夹与js文件夹的文件进行拦截-->
    
 <!-- 参数名称解析 -->
 <bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
  <property name="paramName" value="action"></property>
 </bean>

<!-- 视图解析器 -->
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/jsp"></property> <!-- 前缀 -->
  <property name="suffix" value=".jsp"></property> <!-- 后缀 -->
 </bean>
    
</beans>

这样子图片就可以显示出来了:

SpringMVC之访问静态文件的更多相关文章

  1. SpringMVC——正常访问静态文件,不要找不到静态文件报404的方法

    方案一:激活Tomcat的defaultServlet来处理静态文件 <span style="font-size:12px;"> <servlet-mappin ...

  2. springmvc如何访问静态文件,例如jpg,js,css

    你怎么DispatcherServlet拦截"*.do"这有一个后缀URL.就不存在訪问不到静态资源的问题.   假设你的DispatcherServlet拦截"/&qu ...

  3. springMVC如何访问静态文件

    在进行Spring MVC的配置时,通常我们会配置一个dispatcher servlet用于处理对应的URL.配置如下:<servlet><servlet-name>mvc- ...

  4. springmvc配置访问静态文件

    xmlns:mvc="http://www.springframework.org/schema/mvc" <mvc:annotation-driven /><m ...

  5. SPRING-MVC访问静态文件,如jpg,js,css

    如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg ...

  6. Springmvc加载静态文件和开启EL表达式的支持

    一.静态文件加载问题 刚开始学习SpringMVC,发现静态文件无法加载 web.xml配置如下: <web-app id="WebApp_ID" version=" ...

  7. spingmvc 访问静态文件,比如css,img等

    这里我来引用一段别人的原话 url-pattern有5种配置模式: (1)/xxx:完全匹配/xxx的路径 (2)/xxx/*:匹配以/xxx开头的路径,请求中必须包含xxx. (3)/*:匹配/下的 ...

  8. nginx访问静态文件配置

    通过nginx访问静态文件配置,均是在server模块中配置,有两种方式: 1.alias 通过alias关键字,重定义路径,如 server{     listen 7001;     server ...

  9. 在django中访问静态文件(js css img)

    刚开始参考的是别的文章,后来参考文章<各种 django 静态文件的配置总结>才看到原来没有但是没有注意到版本,折腾了一晚上,浪费了很多很多时间.后来终于知道搜索django1.7访问静态 ...

随机推荐

  1. ASP.NET LINQ SQL执行超时的问题

    最近在写一个航材取价的程序.由于执行的语句复杂,数据量比较大,容易造成超时. 看提示应该是执行SQL的时候超时,我在程序中用的linq. 实际把SQL语句单独执行的时候观察也要40秒左右. 查资料得知 ...

  2. ASP.NET MVC 音乐商店 - 目录

    这一个系列的内容来自微软的音乐商店 Music Store, 这是项目在 Codeplex 上的地址:http://mvcmusicstore.codeplex.com/. 这个项目使用 ASP.NE ...

  3. C++/C#结构体转化-二维数组-bytes To Strings

    C++结构体 typedef struct VidyoClientRequestGetWindowsAndDesktops_ { /*! The number of application windo ...

  4. HTTP 错误 401.3 - Unauthorized由于 Web 服务器上此资源的访问控制列表(ACL)解决办法

    对应站点目录的IUSR的权限没设造成的...在属性——>安全——> 高级 中把IUSR用户找出来添加好就OK了 注:IUSR(匿名访问 Internet 信息服务的内置帐户)

  5. python进阶4--pywin32

    python 在windows下系统编程 1.环境配置:Python是没有自带访问windows系统API的库的,需要下载.库的名称叫pywin32,可以从网上直接下载. 以下链接地址可以下载: ht ...

  6. mock.js 使用教程

    mock.js 数据模板 #查看模板生成的数据 var data = Mock.mock({ //list|1-10 数组元素个数随机范围, id|+2 属性值递增, age|20-30数值随机范围 ...

  7. XmlDocument加载有Xmlns的xml文档,使用Xpath

    using System; using System.IO; using System.Xml; public class Sample { public static void Main() { X ...

  8. Azure 网站和通配符域

     本文章由Azure 网站团队软件开发工程师Michael Candido 撰写 一些 Web 应用程序需要使用多个子域,在某些情况下还需要动态添加新的子域.例如,一个多租户 Web 应用程序可使 ...

  9. iOS 首次启动画面,新装或更新用户可以通过它查看简介。

    // // GuideViewController.h // Guide // // Created by twb on 13-9-17. // Copyright (c) 2013年 twb. Al ...

  10. C# 动态载入Dll

    1.新建測试dll及方法,用vs2010新建winform程序,详细代码例如以下: using System; using System.Collections.Generic; using Syst ...