【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.欢迎大家在下方留言和我沟通交流,我们一起学习一起进步!

时间: 2024-11-09 05:51:57

【springMVC】之静态文件访问的相关文章

【SpringMVC】静态资源访问的问题

在项目中经常会用到一些静态的资源,而一般我们在配置SpringMVC时会让SpringMVC接管所有的请求(包括静态资源的访问), 那么我们怎样才能最简单的来配置静态资源的访问呢? 一,在web.xml中让SpringMVC接管所有请求 如图 二,在SpringMVC中配置静态资源映射路径 这句话的意思是将ccc这个文件夹的访问路径映射为javaScript 也就是说 我们在地址栏里面访问JavaScript下的某个图片,其实经过SpringMVC的处理后,访问的是ccc下的文件 例如我们要访问

zbb20170726 spring访问静态文件访问

静态文件目录 web.xml拦截方式  / <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 默认/WEB-INF/[servlet名字]-servlet.xml加载上下文, 如果配置了

NodeJS静态文件访问性能测试

受益于JavaScript语言优秀特点,使NodeJS开发服务端应用很方便,配合NPM官方提供的大量第三方组件,让NodeJS更加如虎添翼.最近,需要使用NodeJS做一个服务端HTML5的游戏服务器,应用实现包含两大部分:一部分做HTTP服务器为客户端发送html.image.javascript等游戏资源文件:另一部分使用了socket.io实时响应玩家的操作.技术实现并不困难,但要实现一个轻量.稳定.流畅的HTTP静态文件服务器,还是需要花些心思的. 本文笔者对现有一些HTTP服务器的实现

SpringMVC对静态文件的3种访问方法

servlet在找页面时,走的是dispatcherServlet路线.找不到的时候会报404错误. 加上这个默认的servlet时候,servlet在找不到的时候会去找静态的内容. 访问到静态的文件,如jpg,js,css 如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 目的:可以正常访问静态文件,不要找不到静态文件报40

springMVC 静态文件 访问

1. 新建web project 2. 导入所需jar包 3. 更改web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu

SpringMVC处理静态文件源码分析

SpringMVC处理静态资源,主要是两个标签,mvc:resources和mvc:default-servlet-handler.在详细说明他们的原理之前,需要先简单说明下SpringMVC中请求处理机制:HandlerMapping和HandlerAdapter. 1 HandlerMapping和HandlerAdapter的来由 用过python Django框架的都知道Django对于访问方式的配置就是,一个url路径和一个函数配对,你访问这个url,就会直接调用这个函数,简单明了 然

springmvc引入静态文件报404错误

springmvc项目在引入jquery.js文件的时候报了404的错误,当然jquery也是无法使用了,出现这样的错误主要是由于dispatcherServlet拦截设置的问题,请看以下例子: 当我们在web.xml里面设置dispatcherServlet时设置了拦截"/",所以引入静态文件的时候也会因为这个设置而导致无法寻找文件 解决方案: 1.可以把这个拦截设置为*.do,那么页面中照常引入文件,web.xml设置: JSP使用并测试: 2.第二种方式可以添加文件后缀的拦截,建

VUE打包好的文件部署让beego实现静态文件访问,如何用根目录来访问静态文件?

最近的一个全栈项目,光伏云监控系统,后端使用beego框架,纯api,前端使用VUE2.0.项目地址:http://scada.ssechina.com:88/static 我把打包好的前端文件放到go的static目录, 然后main里面设置 beego.BConfig.WebConfig.StaticDir["/static"] = "static"只能用ip/static/login.html来访问 如果改成beego.BConfig.WebConfig.St

6.访问日志静态文件,访问日志切割,静态元素过期时间

[toc] 10.22 访问日志不记录静态文件 很多网站大多为静态网页,网页内部的图片.css文件等同样有其网址链接,如果不设置,这些无效的信息也将被存入访问日志中,会导致访问日志文件大小快速增加,占用大量存储空间.我们可以通过设置不记录某些文件来减少无效信息,节省内存资源. 1. 编辑虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf </IfModule> ErrorLo