Spring MVC显示静态页面

在前面搭建spring MVC环境时,我们设置了spring-mvc配置,通过tomcat来访问了index.jsp 
页面,但是当我将页面换成.thml的静态面之后就发现始终是404错误:

 

为什么会有这样的错误呢?
如果在spring-mvc.xml中DispatcherServlet拦截”/”,为了实现REST风格,拦截了所有的请求,那么同时对.html,.js,*.jpg等静态文件的访问也就被拦截了。
现在考虑如何加载静态页面。

1、激活Tomcat的defaultServlet来处理静态文件

要写在DispatcherServlet的前面, 让 defaultServlet先拦截请求,这样请求就不会进入Spring了,我想性能是最好的吧。

部分spring-mvc.xml

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</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>*.css</url-pattern>
</servlet-mapping>
<!--要配置多个,每种文件配置一个 --><servlet-mapping>
<servlet-name>webAPP名<servlet-name>
<url-pattern>/<url-pattern>
<servlet-mapping>

2、 在spring3.0.4以后版本提供了mvc:resources

Xml代码

<!-- 对静态资源文件的访问 -->
<mvc:resources mapping="/images/**" location="/images/" />

/images/** 映射到ResourceHttpRequestHandler进行处理,location指定静态资源的位置.可以是web application根目录下、jar包里面,这样可以把静态资源压缩到jar包中。cache-period 可以使得静态资源进行web cache。

如果出现下面的错误,可能是没有配置 <mvc:annotation-driven />的原因。

报错WARNING: No mapping found for HTTP request with URI [/mvc/user/findUser/lisi/770] in DispatcherServlet with name ‘springMVC’

使用元素,把mapping的URI注册到SimpleUrlHandlerMapping的urlMap中, 
key为mapping的URI pattern值,而value为ResourceHttpRequestHandler, 
这样就巧妙的把对静态资源的访问由HandlerMapping转到ResourceHttpRequestHandler处理并返回,所以就支持classpath目录,jar包内静态资源的访问.

另外需要注意的一点是,不要对SimpleUrlHandlerMapping设置defaultHandler.因为对static uri的defaultHandler就是ResourceHttpRequestHandler, 
否则无法处理static resources request.

3、使用<mvc:default-servlet-handler/>

spring-mvc.xml部分代码

<beans>......<bean>......<bean><mvc:default-serv;et-handler>
</beans>

<mvc:default-servlet-handler/>会把 “/**” url,注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler处理并返回. 
DefaultServletHttpRequestHandler使用就是各个Servlet容器自己的默认Servlet

原文出自:http://elf8848.iteye.com/blog/875830

SpringMVC访问静态页面相关推荐

  1. 通过Nginx访问静态页面

    通过Nginx访问静态页面 转载请标明出处^_^ 原文首发于:www.zhangruibin.com 本文出自于:RebornChang的博客 nginx的用途 处理静态文件,索引文件以及自动索引:打 ...

  2. Spring Boot 访问静态页面!

    SpringBoot访问静态页面 一.静态页面放在templates下面(多个页面可以添加相应的文件夹,方便管理): 二.配置Controller 这里有两点值得注意: 其一:类注解不能用RestCo ...

  3. SpringMVC访问静态资源

    鸣谢:http://blog.163.com/koko_qiang/blog/static/207213184201382091154584/ ---------------------------- ...

  4. 【转载】SpringMVC访问静态资源

    在SpringMVC中常用的就是Controller与View.但是我们常常会需要访问静态资源,如html,js,css,image等. 默认的访问的URL都会被DispatcherServlet所拦 ...

  5. 当配置 DispatcherServlet拦截“/”,SpringMVC访问静态资源的三种方式

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

  6. SpringMVC访问静态资源的三种方式

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

  7. springboot访问静态页面404_解决 springboot 2.x 访问静态资源 404的问题

    首先确定资源路径正确. 如果静态路径正确,访问报以下问题 3. 解决方法,重写WebMvcConfigurer里的 addResourceHandlers方法. @Configurationpubli ...

  8. mac上nginx静态页面访问403

    第一天配置好的nginx可以正常的访问静态页面,第二天通过网络云盘下载的index.html文件之后,再次访问出现了403forbidden的问题. 查看文件的权限: -rwxr-x--x@ 1 hu ...

  9. Spring MVC入门示例教程--静态页面跳转

    以下示例显示如何使用Spring MVC Framework编写一个简单的基于Web的应用程序,它可以使用<mvc:resources>标记访问静态页面和动态页面.首先使用Eclipse ...

最新文章

  1. python属于哪种类型的语言_Python是什么类型的编程语言,有什么特性
  2. 【Netty】Bootstrap引导
  3. log4j用于读取.xml文件的出现了错误,类加载器.getResource(user.xml).getPath()返回路径空格变成了%20...
  4. 有赞客户行为收集与实时处理系统设计
  5. 老oj1965:polygon半平面交
  6. oracle 格式化报表输出,perl的格式化(Format)报表输出实现代码
  7. 标注反向优化 生成全体测试集空标注(无需坐标、只要送给权重evaluate即可)predicted
  8. c# MEF框架(四 见证奇迹的时刻之实战应用)
  9. navtab触底 小程序_微信小程序TAB切换效果
  10. STM32定义数组到flash的指定位置
  11. smartsvn 忽略文件夹_MacOS下smartSVN使用教程
  12. Android人脸支付功能,人脸支付是未来吗?盘点安卓人脸支付手机,小米看后很尴尬…...
  13. 两个向量叉乘表示什么意思_为什么两个空间向量的向量积的摸等于以这两个 – 手机爱问...
  14. 图片转ascii字符画C语言,将图片转为ASCII字符画
  15. Win11系统显示和隐藏语言栏的操作方法分享
  16. ❤520情人节陪她一起看流星雨~html+css+javascript制作流星雨3D相册(含音乐)
  17. 涂鸦蓝牙SDK开发系列教程——5.应用开发
  18. 利用连按 5 下 Shift 漏洞破解 win7 开机密码(原理以及实现)
  19. 接口测试Jmeter
  20. CCNA 初学(第二课)

热门文章

  1. C语言删除单链列表中间的节点的算法(附完整源码)
  2. OpenGL散射照明
  3. c++获得总和S所需的最小硬币数量的函数(附完整源码)
  4. C语言插入排序Insertion Sort算法(附完整源码)
  5. 经典C语言程序100例之七四
  6. python os.urandom 安全_python SystemRandom/os.urandom总是有足够的熵来获得良好的加密
  7. 04_机器学习概述,什么是机器学习,应用场景,数据来源与类型,网上可用的数据集、常用数据集数据的结构组成、特征工程是什么、意义、特征抽取、sklearn特征抽取API、文本特征抽取(学习笔记)
  8. 时间串变成Date类型的数据
  9. 最小二乘法普通定义法证明
  10. 7旗舰版装不了itunes_装系统,用小白,让小白来教大家如何用U盘装WIN7系统