首页 > 代码库 > 【springMVC】之静态文件访问

【springMVC】之静态文件访问

    上篇博客介绍了springMVC参数的传递,今天我们来说说springMVC静态文件的访问。我们所说的静态文件通常是指只有文本或图片,且不会通过后台的控制来更改的元素。如果可以通过后台控制就不属于静态文件了。我们这里要讲一下图片、js文件。


    我们首先来说springMVC是如何访问图片的。首先先建目录,建img、js、css目录,这三个目录是最基础的东西。

技术分享

然后创建一个jsp页面。

<body>
	<h>图片访问</h>
	<div>
		<img alt="图片" src=http://www.mamicode.com/"../img/leave.jsp">>
创建一个java类ImgController.java

public class StaticController extends MultiActionController {
	
	public ModelAndView img(HttpServletRequest request, HttpServletResponse response){
		
		return new ModelAndView("/staticFile");
		
	}
}

配置配置文件spring-servlet.xml

<!-- 一样,给咱们新建的项目StaticController建立解析器-->
<bean name="/test1/img" class="com.tgb.web.controller.StaticController">
	<property name="methodNameResolver">
		<ref bean="paramMethodResolver"/>
	</property>
</bean>

现在我们来理一下整个流程:首先前端访问到达mapping,mapping再去解析java类里面的方法,然后再回到jsp,jsp页面再去拿到这个图片。

后续.................

对于图片无法正常访问,如下所示:

技术分享

解决方法:在spring-servlet.xml文件中配置:

<mvc:resources location="/img/" mapping="/img/**" />

这是什么原因导致的呢?我们来看一下web.xml配置文件中的配置:

<servlet-mapping>
	<servlet-name>springMVC</servlet-name>
	<url-pattern><span style="font-family:KaiTi_GB2312;">/</span></url-pattern>
</servlet-mapping>

原来我们刚刚在spring-servlet.xml配置文件中配置的那个标签的意思就是过滤,而我们刚刚看到的在web.xml配置文件中拦截了所有的请求,但是遇到这样的标签时就告诉web.xml这个请求你不要拦截了就直接访问就可以了。这样我们就能访问到图片了。

技术分享


下面我们接着来说一下springMVC如何访问js文件的.第一步我们知道是在spring-servlet.xml配置文件中配置。但是为了对比出效果,我们先不引入静态资源访问,也就是在spring-servlet.xml中先不配置js文件。

<pre name="code" class="javascript"><mvc:resources location="/img/" mapping="/img/**" />
<mvc:resources location="/js/" mapping="/js/**" /> 

然后新建jsp页面,引入jquery包,进行jquery加载。
<html>
	<head>
	<!--引入jquery包-->
	<script type="text/javascript" src=http://www.mamicode.com/"../js/jquery-1.7.1.min.js"></script>>在java类中写jquery方法

public ModelAndViewjquery(HttpServletRequest request, HttpServletResponse response){
	
	return new ModelAndView("/jquery");
	
}
运行效果为:

技术分享

下面我们将spring-servlet.xml配置文件中的静态解析器启用

<mvc:resources location="/img/" mapping="/img/**" />
<mvc:resources location="/js/" mapping="/js/**" /> 
则此时运行效果会弹出对话框:

技术分享


************************************************************************************************

后话:

    其实你发现没有,配置文件的正确配置在整个项目的过程中起着十分重要的作用。可能刚开始的时候我们理解配置文件会有些吃力,不过没关系,了解整个过程的运行机理,一点点的顺着程序运行的状态去跟进就会显得轻松好多。好了,下篇博客我们接着聊springMVC.欢迎大家在下方留言和我沟通交流,我们一起学习一起进步!


【springMVC】之静态文件访问