官网

https://docs.spring.io/spring/docs/4.3.25.RELEASE/spring-framework-reference/htmlsingle/

Springmvc.xml

配置springmvc.xml,出现exception返回的界面和对应code返回的界面。

不知道为啥httpcode不起作用,网上也没查到相关资料,于是httpcode对应的异常只能用web.xml实现。

    <!-- 异常友好展示 -->
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<!-- 默认配置,没有配置的异常或者httpcode返回500,指定异常为ex,前端可以用${ex.message}显示异常信息-->
<property name="defaultErrorView" value="errorpages/500"/>
<property name="defaultStatusCode" value="500"/>
<property name="exceptionAttribute" value="ex"/>
<property name="warnLogCategory" value="WARN"/>
<!-- Exception对应的jsp -->
<property name="exceptionMappings">
<props>
<!-- java.lang.RunTimeException异常返回errorpages/500.jsp页面,其他同理 -->
<prop key="java.lang.RunTimeException">errorpages/500</prop>
<prop key="java.sql.SQLException">errorpages/500</prop>
<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">errorpages/upLoadFileError</prop>
</props>
</property>
<!-- code对应的jsp -->
<property name="statusCodes">
<props>
<!-- 404对应errorpages/404.jsp -->
<prop key="errorpages/404">404</prop>
<prop key="errorpages/404">400</prop>
</props>
</property>
</bean>

/errorpages/404.jsp

显示一段时间后自动返回.

<%@ page language="java"  pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>error(404)</title>
<meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<script type="text/javascript">
var m=9;
function init(){
var t=document.getElementById("txt");
interval=window.setInterval(function(){
t.innerText=m+"";
if(m<=0){
window.clearInterval(interval);
window.history.go(-1);
}
m--;
}, 1000);
}
</script>
</head>
<body onload="init();">
<div style="vertical-align: center;text-align: center;width:auto;height:auto;margin-top: 180px;">
您请求的地址不存在,浏览器将在&nbsp;
<font color="red"><span id="txt">10</span></font>&nbsp;秒后返回.&nbsp;&nbsp;
<a href="javascript:window.history.go(-1);">立即返回</a>
</div>
</body>
</html>

/errorpages/500.jsp

显示报错

<%@ page language="java"  pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>请求错误(500)</title>
<meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<script type="text/javascript">
</script>
</head>
<body>
<div>
请求错误,错误信息如下:${ex.message}
</div>
</body>
</html>

web.xml

配置httpcode

     <error-page>
<error-code>404</error-code>
<location>/errorpages/404.jsp</location>
</error-page> <error-page>
<error-code>400</error-code>
<location>/errorpages/400.jsp</location>
</error-page>

Spring MVC异常友好展示的更多相关文章

  1. spring mvc 异常统一处理方式

    springMVC提供的异常处理主要有两种方式: 一种是直接实现自己的HandlerExceptionResolver: 另一种是使用注解的方式实现一个专门用于处理异常的Controller——Exc ...

  2. 【Java Web开发学习】Spring MVC异常统一处理

    [Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...

  3. Spring MVC异常统一处理(包括普通请求异常以及ajax请求异常)

    通常SpringMVC对异常的配置都是返回某个jsp视图给用户,但是通过ajax方式发起请求,即使发生异常,前台也无法获得任何异常提示信息.因此需要对异常进行统一的处理,对于普通请求以及ajax请求的 ...

  4. spring mvc异常统一处理(ControllerAdvice注解)

    首先我的项目是一个为移动端提供的json数据的,当后台报错时如果为移动端返回一个错误页面显得非常不友好,于是通过ControllerAdvice注解返回json数据. 首先创建一个异常处理类: pac ...

  5. Spring MVC异常统一处理的三种方式

    Spring 统一异常处理有 3 种方式,分别为: 使用 @ ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvi ...

  6. spring mvc异常的处理

    1.全局处理 <!-- 总错误处理 --> <bean id="exceptionResolver" class="org.springframewor ...

  7. Spring MVC异常统一处理

    package com.shzq.common.exception; import java.io.PrintWriter;import java.io.StringWriter;import jav ...

  8. spring mvc 异常处理和session添加

    在controller中进行设置 package com.stone.controller; import java.util.HashMap; import java.util.Map; impor ...

  9. spring mvc 异常统一处理

    摘自: http://gaojiewyh.iteye.com/blog/1297746  

随机推荐

  1. 嵌入式linux开发uboot启动内核的机制(二)

    一.嵌入式系统的分区 嵌入式系统部署在Flash设备上时,对于不同SoC和Flash设备,bootloader.kernel.rootfs的分区是不同的.三星S5PV210规定启动设备的分区方案如下: ...

  2. el-table 固定表头

    fixedTableHeaderMixin.js: /* 使用此mixin: 第一:需要在页面的el-table配置属性:ref="table" 和 :height="t ...

  3. css 固定图片

  4. 2019南昌网络赛I:Yukino With Subinterval(CDQ) (树状数组套主席树)

    题意:询问区间有多少个连续的段,而且这段的颜色在[L,R]才算贡献,每段贡献是1. 有单点修改和区间查询. 思路:46min交了第一发树套树,T了. 稍加优化多交几次就过了. 不难想到,除了L这个点, ...

  5. 使用flow提升js代码的健壮性

    https://www.jianshu.com/p/7716dc8b2206    Flow基本语法及使用 https://www.cnblogs.com/tianxiangbing/p/flow.h ...

  6. [RN] React Native 图片保存到相册(支持 Android 和 ios)

    React Native 图片保存到相册(支持 Android 和 ios) 原理: IOS用 RN自带的 CameraRoll, Android 使用 不成功,需要 react-native-fs  ...

  7. 【JZOJ100209】【20190705】狂妄之人

    题目 \(S\)串长为\(n\),字符集大小为\(k\) 一次操作为:取走\(S\)的任意一个字符或将\(S\)重排为一个没有出现过的字符\(S'\) 询问有多少个\(S\)使得后手必胜,答案对\(P ...

  8. git filter-branch之后撤销到原来状态

    起因 因为要拆分仓库,所以按照原来的操作拆分,拆分完成后发现有问题,所以准备还原重新拆分. 注意 git filter-branch之后,不可以做其他额外操作 运行git filter-branch之 ...

  9. 几句话总结一个算法之DQN

    DQN利用深度学习对Q-learning的一个扩展,回顾上篇文章,Q-learning的核心在于Q(s,a)的建模.如果状态s非常复杂,很难通过一张表来存储所有的状态. 深度学习正好可以自动提取s的特 ...

  10. AQS源码的简单理解

    概念 AQS全称 AbstractQueuedSynchronizer. AQS是一个并发包的基础组件,用来实现各种锁,各种同步组件的.它包含了state变量.加锁线程.等待队列等并发中的核心组件. ...