Spring MVC异常友好展示

官网

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>

原文地址:https://www.cnblogs.com/aeolian/p/11970521.html

时间: 2024-08-19 01:56:03

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

spring mvc 异常统一处理方式

springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的Controller--ExceptionHandler. 1.实现自己的HandlerExceptionResolver,HandlerExceptionResolver是一个接 口,springMVC本身已经对其有了一个自身的实现--DefaultExceptionResolver,该解析器只是对其中的一些比较典型的异常 进行了

Spring MVC异常统一处理(异常信息的国际化,日志记录)

JAVA EE项目中,不管是对底层的数据操作,还是业务层的处理过程,还是控制层的处理,都不可避免的会遇到各种可预知的(业务异常主动抛出).不可预知的异常需要处理.一般dao层.service层的异常都会直接抛出,最后由controller统一进行处理,每个过程都单独处理异常,且要考虑到异常信息和前端的反馈,代码的耦合度高,不统一,后期维护的工作也多. 同时还必须考虑异常模块和日志模块.国际化的支持. 因此需要一种异常处理机制将异常处理解耦出来,这样保证相关处理过程的功能单一,和系统其它模块解耦,

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

通常SpringMVC对异常的配置都是返回某个jsp视图给用户,但是通过ajax方式发起请求,即使发生异常,前台也无法获得任何异常提示信息.因此需要对异常进行统一的处理,对于普通请求以及ajax请求的异常都有效. 1.Spring MVC的异常处理机制 Spring MVC 通过HandlerExceptionResolver处理程序的异常,包括处理器映射,数据绑定以及处理器执行时发生的异常.HandlerExceptionResolver仅有一个接口方法: ModelAndView resol

spring mvc 异常统一处理 【转】

SpringMVC 提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异 常的Controller——ExceptionHandler.前者当发生异常时,页面会跳到指定的错误页面,后者同样,只是后者会在每个 controller中都需要加入重复的代码.如何进行简单地统一配置异常,使得发生普通错误指定到固定的页面,ajax发生错直接通过js获取,展现给 用户,变得非常重要.下面先介绍下2种异常处理方式,同时

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

@ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强.让我们先看看@ControllerAdvice的实现: Java代码   @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface ControllerAdvice { } 没什么特别之处,该注解使用@Component注解,这样的话当我们使用

spring mvc 异常处理和session添加

在controller中进行设置 package com.stone.controller; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.u

Spring MVC 异常集合

1.返回路径自动加上了工程名 [2014-12-30 10:34:29,953]WARN  org.springframework.web.servlet.PageNotFound(line:1114) -No mapping found for HTTP request with URI [/cmis/jsp/index.jsp] in DispatcherServlet with name 'dispatcher'

Spring MVC 实践 - Base

Spring MVC 实践 标签 : Java与Web Spring Web MVC Spring-Web-MVC是一种基于请求驱动的轻量级Web-MVC设计模式框架, Spring MVC使用MVC架构思想, 对Web层进行职责解耦,使用请求-响应模型将数据.业务与视图进行分离, 简化开发. MVC MVC(模型-视图-控制器)是一个以设计界面应用程序为基础的架构模式,通过分离模型-视图-控制器在应用中的角色将业务逻辑从界面中解耦: 模型负责封装应用数据和业务逻辑; 视图仅负责展示数据; 控制

Spring mvc 中使用 Log4j

1.依赖包 commons-logging-1.1.3.jar.log4j-1.2.15.jar 2.配置Web.xml 1 <context-param> 2 <param-name>log4jConfigLocation</param-name> 3 <param-value>/WEB-INF/log4j.properties</param-value> 4 </context-param> 5 <listener>