springMVC 请求404异常或静态资源无法访问

springMVC 请求404错误或静态资源无法访问问题:springMVC 请求404错误或静态资源无法访问。 在web.xml中我们一般这样配置:

spring3

org.springframework.web.servlet.DispatcherServlet

1

spring3

/

使用

/

可以实现rest风格,但是会拦截了所有的请求导致静态资源无法访问(解决方法后面说), 当然,如果你使用*.do、*.xhtml等就不会出现静态资源无法访问问题。 静态资源无法访问解决方案: 1,在spring3-servlet.xml中添加一下配置:

使用元素,把mapping的URI注册到SimpleUrlHandlerMapping的urlMap中, key为mapping的URI pattern值,而value为ResourceHttpRequestHandler, 这样就巧妙的把对静态资源的访问由HandlerMapping转到ResourceHttpRequestHandler处理并返回,所以就支持classpath目录,jar包内静态资源的访问. 另外需要注意的一点是,不要对SimpleUrlHandlerMapping设置defaultHandler.因为对static uri的defaultHandler就是ResourceHttpRequestHandler, 否则无法处理static resources request. 如果加上以上配置还是不成功,检查一下是不是没有配置:2,在spring3-servlet.xml中添加一下配置:会把"/**" url,注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到 org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler 处理并返回. DefaultServletHttpRequestHandler使用就是各个Servlet容器自己的默认Servlet. 推荐使用*.do或方案2,如果你访问一个网站的默认主页(也就是web.xml中配置的welcome-file)index.jsp,一般我们可以类似这样访问:http://localhost:8080/apprecommend-web/ 会自动跳转到http://localhost:8080/apprecommend-web/index.jsp,如果使用方案1,就不能这样访问了,因为spring会拦截所有的请求,但是拦截到的/apprecommend-web/没有匹配的处理action,而且就直接 返回404,不再处理了,如果使用方案2,还会由DefaultServletHttpRequestHandler去调用Servlet容器自己的默认Servlet进行处理,然后返回。

时间: 2024-10-12 17:44:11

springMVC 请求404异常或静态资源无法访问的相关文章

springmvc 请求经过controller后静态资源无法访问的问题

经过RequestMapping(“xx”)后 转发请求时会在url里面附带地址, 导致访问静态资源文件失败, 解决办法是在 spring-mvc.xml文件中加上 <mvc:default-servlet-handler/> <!-- 由于在web.xml中定义的url拦截形式为“/”表示拦截所有的url请求, 包括静态资源例如css.js等.所以需要在springmvc.xml中添加资源映射标 --><mvc:resources location="/stati

SpringMVC 部署项目静态资源文件访问问题

问题:采用SpringMVC 部署项目后程序加载或用浏览器访问时出现类似的警告,2011-01-19 10:52:51,646 WARN [org.springframework.web.servlet.PageNotFound] -<No mapping found for HTTP request with URI [/sandDemo001/images/1.jpg] in DispatcherServlet with name 'spring'>,主要看尖括号内部分.问题原因:罪魁祸首

springmvc请求参数异常统一处理,结合钉钉报告信息定位bug位置

参考之前一篇博客:springmvc请求参数异常统一处理 1.ExceptionHandlerController package com.oy.controller; import java.text.MessageFormat; import java.util.ResourceBundle; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.TypeMismatchException

【Spring学习笔记-MVC-14】Spring MVC对静态资源的访问

作者:ssslinppp       参考链接: http://www.cnblogs.com/luxh/archive/2013/03/14/2959207.html http://www.cnblogs.com/fangqi/archive/2012/10/28/2743108.html 优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用

Spring MVC:解决静态资源无法访问的问题

解决静态资源不能访问的问题,解决方式有三种: 使用defaultServlet打开tomcat中conf/web.xml,在这个文件中有一个叫做DefaultServlet的配置,当系统找不到处理某次url请求该交由谁处理的时候,就会交给这个servlet处理.我们可以通过使用这个DefaultServlet来处理静态资源,在你的系统中的web.xml文件中添加下面配置,要添加在DispatcherServlet的前面,这样系统就会将带有下面后缀名的请求交给defaultservlet来处理:

SpringMVC02静态资源的访问

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

SpringMVC 表单标签 &amp; 处理静态资源

使用 Spring 的表单标签 通过 SpringMVC 的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显. form 标签 一般情况下,通过 GET 请求获取表单页面,而通过POST 请求提交表单页面,因此获取表单页面和提交表单页面的 URL 是相同的.只要满足该最佳条件的契约,<form:form> 标签就无需通过 action 属性指定表单提交的 URL 可以通过 modelAttribute 属性指定绑定的模型属性,若 没有指定该

SpringMVC表单标签&amp;处理静态资源

使用 Spring 的表单标签 通过 SpringMVC 的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显 form 标签 • 一般情况下, 通过 GET 请求获取表单页面,而通过POST 请求提交表单页面, 因此获取表单页面和提交表单页面的 URL 是相同的. 只要满足该最佳条件的契约, <form:form> 标签就无需通过 act一般情况下, 通过 GET 请求获取表单页面,而通过POST 请求提交表单页面, 因此获取表单页面和提交

(八)springmvc之静态资源的访问。

一.直接调用 行内样式或者js直接调用没有问题. <span style="font-size:26px;color: Blue">行内样式</span> <input type="button" onclick="javascript:alert('aa');" value="直接调用"/> 二.静态资源没有放在WEB-INF目录下 在SpringMvc的配置文件中,配置mvc:defau