Spring MVC系列Spring MVC中请求转发中出现异常如何处理

Posted 一宿君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC系列Spring MVC中请求转发中出现异常如何处理相关的知识,希望对你有一定的参考价值。

底层配置可以参考上篇Spring MVC系列(一)、Spring MVC概述及ModelAndView(模型视图)

三、Spring MVC中请求转发中出现异常如何处理

在程序运行后报错了,首先我们要知道是何种错误,然后再去针对性的解决,这样才能不至于瞎胡改。

3.1 先在springmvc的核心配置文件中进行异常解析配置

  • applicationContext-springmvc.xml
    <!--简单映射异常解析器-->
        <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <!-- 给异常命名一个别名 -->
            <property name="exceptionAttribute" value="ex"/>
            <!--异常映射-->
            <property name="exceptionMappings">
                <!--标注是啥异常错误(可以添加多个)-->
                <props>
                    <!--所有异常均可跳转到一个页面中-->
                    <!--异常默认跳转页面-->
                    <prop key="java.lang.RuntimeException">error</prop>
                    <!--数组下标越界异常-->
                    <prop key="java.lang.ArrayIndexOutOfBoundsException">error</prop>
            	</props>
            </property>
        </bean>		
    
    在这里插入图片描述

3.2 在控制器Controller中访问登录界面

  • SystemUserContoller类
    /**
         * 跳转登录界面
         * @return
         */
        @RequestMapping(method = RequestMethod.GET,value = {"/toLogin"})
        public String toLogin(HttpServletRequest request){
            System.out.println(1/0);//制造运行时异常
            return "login";
        }
    
    在这里插入图片描述

3.3 error.jsp页面获取异常信息

  • error.jp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>配置文件中检测到的error</h1>
    ${ex}<br/>
    
    </body>
    </html>
    

3.4 在地址栏请求toLogin

在这里插入图片描述
在这里插入图片描述

3.5 使用注解(@ExceptionHandler)标注在方法上的方式获取异常信息,并跳转至error.jsp页面

  • Controller
    @ExceptionHandler(value = RuntimeException.class)
        public String exception(RuntimeException re,HttpServletRequest req){
            req.setAttribute("MSG",re.getMessage());
            return "error";
        }
    

在这里插入图片描述

  • error.jspyemian
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>配置文件中检测到的error</h1>
    ${requestScope.ex}<br/>
    
    <h1>注解中检测到的error</h1>
    ${requestScope.MSG}<br/>
    
    </body>
    </html>
    
    在这里插入图片描述

以上是关于Spring MVC系列Spring MVC中请求转发中出现异常如何处理的主要内容,如果未能解决你的问题,请参考以下文章

[Interview]Java 面试宝典系列之 Spring MVC

Spring MVC系列初识Spring MVC

SpringSpring系列7之Spring整合MVC框架

Spring MVC系列Spring MVC应用及ModelAndView(模型视图)

spring mvc 怎么设计缓存

spring mvc超强的json支持,你自己根本不需要额外的配置。spring mvc都给你配置好了!!!