【springMVC】之静态文件访问

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


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

然后创建一个jsp页面。

<body>
	<h>图片访问</h>
	<div>
		<img alt="图片" src="../img/leave.jsp">
	</div>
</body>

创建一个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="../js/jquery-1.7.1.min.js"></script>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>Inset title here</title>
	
	<!-- jquery代码,最经典的就是jquery的加载 -->
	<script type="text/javascript">
		$(document).ready(function(){
			alert(11);
		});
	</script>
	</head>
	
	<body>
		<h>jquery请求</h>
	</body>
</html>
在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.欢迎大家在下方留言和我沟通交流,我们一起学习一起进步!


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值