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>
    
    在这里插入图片描述
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一宿君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值