SpringMVC使用RESTful风格后对静态资源的处理_在远行的路上的博客-程序员秘密

技术标签: restful  静态资源处理  spring mvc  Java相关  

    SpringMVC使用REST风格,需要在web.xml中配置DispatcherServlet的映射路径如下:

<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<strong><url-pattern>/</url-pattern></strong>
	</servlet-mapping>

此时,对于项目中引入的css,js等静态资源也会进行拦截,而没有相应的Servlet进行处理,故需要使用专门的静态资源处理Servlet进行处理。

方法一:使用容器提供的Servlet进行处理(对于spring3.0.4以前的版本)

在web.xml中激活容器静态资源Servlet

<servlet-mapping>
	<servlet-name>default</servlet-name>
	<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
	<servlet-name>default</servlet-name>
	<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
	<servlet-name>default</servlet-name>
	<url-pattern>*.jpg</url-pattern>
</servlet-mapping></span>

不同的 servlet 容器/应用服务器,处理这些静态资源的 servlet 的名字不大一样:
Tomcat, Jetty, JBoss, and GlassFish:默认 Servlet 名字为 "default";
Google App Engine:默认 Servlet 名字为 "_ah_default";
Resin:默认 Servlet 名字为 "resin-file";
WebLogic:默认 Servlet 名字为 "FileServlet";
WebSphere:默认 Servlet 名字为 "SimpleFileServlet";

方法二:使用spring提供的servlet进行处理(对于spring3.0.4以上的版本)

在*-servlet.xml中配置:

<mvc:annotation-driven />
<!-- 对静态资源的访问 -->
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/image/**" location="/image/" />
<mvc:resources mapping="/js/**" location="/js/" />

mapping:表示页面中使用到的路径

location:表示从该路径下进行查找

以上的配置:css,image,js放置在webapp目录下,页面中使用时:localhost:8080/css/aaa.css


注意:对于方法二,在tomcat下可以正常使用,但在resin下静态资源仍然找不到,最后发现,直接使用如下的配置就可以兼容tomcat和resin了

<mvc:default-servlet-handler />
这种配置只支持有限的一些容器,对于spring不支持的容器,需要配置defaule-servlet-name进行指定。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lzy_lizhiyang/article/details/51188432

智能推荐

浅谈开发中提升工作效率的姿势_神经骚栋的博客-程序员秘密

简介回想起来,从毕业到现在在iOS这个行业也努(hua)力(shui)了好几年,每每看到同事加班到深夜,于心不忍,故写这篇博客,总结自己这几年写代码的感悟,希望能帮助到那些加班到深夜的程序猿们.这篇博客主要有两个主题,一是代码规范,而是提升效率.虽然两者看似风牛马不相及,但其中的联系可是大大的存在,当你注重了代码规范,那么你的代码质量对应的提升,反正,最终你加班的次数减少就对了~文章也是随意写的,没有什么顺序,也就想到哪写到哪,各位大佬就当做饭后茶资来看吧~#### 正确的理解什么叫做写代码,..

实验七matlab数值计算,数学应用软件实验报告---MATLAB的数值计算_雪鱼子的博客-程序员秘密

一 ,实验目的1. 掌握MATLAB矩阵分析的命令和方法;2. 掌握MATLAB多项式运算的命令和访求;3. 掌握MATLAB数值微积分的运算方法。二,实验原理1. 矩阵分析矩阵转置:单引号(’)矩阵的旋转:rot90(A,k),功能是将矩阵A旋转90度的k倍,缺省值是1矩阵的左右翻转:fliplr(A)矩阵的上下翻转:flipud(A)矩阵的逆:inv(A),与A^(-1)等价矩阵的行列式:de...

基于numpy.einsum的张量网络计算_DechinPhy的博客-程序员秘密

张量与张量网络张量(Tensor)可以理解为广义的矩阵,其主要特点在于将数字化的矩阵用图形化的方式来表示,这就使得我们可以将一个大型的矩阵运算抽象化成一个具有良好性质的张量图。由一个个张量所共同构成的运算网络图,就称为张量网络(Tensor Network)。让我们用几个常用的图来看看张量网络大概长什么样子(下图转载自参考链接1):上面这个图从左到右分别表示:一阶张量、二阶张量以及三阶张量,...

网络存储服务器dsm系统,群晖nas网络存储器常用解决方案_calo hopehely的博客-程序员秘密

DiskStation DS1515高l效能、可靠,满足未来成长需求DS1515 拥有内建浮点运算技术的四**处理器与硬件加密引擎,是一台功能强大、可扩充的 5 颗硬盘 NAS 服务器,能提供的数据传输速度。配备四个以太网络端口,可支持 Link Aggregation 与故障移转;并支持 High Availability 与 SSD 读写快取功能,DS1515 提供经济实惠且可靠的网络储存解决...

Springboot项目中使用FastJson注解@JSONField(serialize = false)无效_vinceLin054的博客-程序员秘密

Springboot项目中使用FastJson注解@JSONField(serialize = false)无效一、问题出现场景在controller层将实体类的list集合放入ModelMap中,方法通过@ResponseBody注解进行转json串返回给视图二、发生问题在视图中查看当前获取的json串,发现加上@JSONField(serialize = false)注解的字段也被序列...

随便推点

二叉树的存储结构_雨潇ヽ的博客-程序员秘密

学习反思:二叉树学习到现在基本上告一段落了,老师的进度已经完成,剩下的就是我们自己的事情了,比如好好复习,做完剩下的练习题目。对于我还没有做出来的那个练习题,我心中其实只有一点点想法,比如说在交换的时候变化指向左右子树的指针,但是这个过程是个递归的过程,如何把握使两个节点只交换一次,应该是需要考虑的内容之一……吧?还有就是怎么交换指针,需要交换的是这个节点的两个子节点,应该可以参考单链的操...

使用Maven遇到的一些问题以及解决方法_Lance9的博客-程序员秘密

一、提示找不到当前JDK的发行版本时解决方法:在maven的setting.xml配置文件标签中添加下列代码,可以在项目中不必再次声明jdkjdk-11true11&lt;maven.compiler.source&gt;11&lt;/maven.compiler.source&gt;&lt;maven.compiler.target&gt;11&lt;/maven.compi...

腾讯云下安装 nodejs + 实现 Nginx 反向代理_weixin_33854644的博客-程序员秘密

本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理。笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑,可以按本文的步骤进行安装部署。一. 新版 nodejs 安装这里强烈推荐使用 nvm (Node版本管理器),其它方式的安装或多或少都有些问题。具体步骤如下:1. 通过 git...

【AWS云从业者基础知识笔记】——模块4:网络_kaijie234的博客-程序员秘密_aws internet网关

01介绍学习目标:描述网络的基本概念。描述公网络和私网的区别。请使用真实场景解释虚拟专用网关。用一个真实的场景来解释一个虚拟专用网(VPN)。描述AWS直接连接的好处。描述混合部署的好处。描述IT策略中使用的安全层。描述客户用于与AWS全球网络交互的服务。02连接到AWSAmazon Virtual Private Cloud (Amazon VPC)想象一下使用AWS服务的数百万客户。另外,想象一下这些客户已经创建了数百万个资源,比如Amazon EC2实例。如果所有这些资源没

实战PyQt5: 093-使用装饰器连接信号与槽_seniorwizard的博客-程序员秘密

装饰器连接信号与槽使用PyQt Designer完成界面设计,比如在其中添加了一个QPushButton, 其名称为pushButton,生成相应的py文件后,打开该文件,可以看到在代码代码中就会有相应控件的名称设置语句以及建立信号和槽的连接语句,比如:......self.pushButton.setObjectName("pushButton")......QtCore.QMetaObject.connectSlotsByName(Form)......这时在代码文件中,直接使用装

Java-类库-Guava-Bimap_weixin_33753003的博客-程序员秘密

 BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。   通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们就需要额外编写一些代码了。首先来看下面一种表示标识序号和文件名的map结构。   @Test ...

推荐文章

热门文章

相关标签