SpringMVC(十一)异常处理器和注解配置SpringMVC

本文详细介绍了SpringMVC中的异常处理器,包括如何通过XML和注解方式进行配置。在XML配置中,展示了如何使用SimpleMappingExceptionResolver处理异常,并通过配置逻辑视图error.html展示错误信息。在注解配置部分,创建了专门处理异常的ExceptionController类。此外,文章还讲解了如何使用注解配置SpringMVC,通过扩展AbstractAnnotationConfigDispatcherServletInitializer替换传统的web.xml配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基于配置的异常处理

SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolver

我们进行查看接口:

该方法的返回值为ModelAndView,为SpringMVC里面执行完控制器方法之后统一的一个对象,Model为往请求域共享数据,View为实现页面跳转。向域对象中共享新的数据。 

HandlerExceptionResolver接口的实现类有:DefaultHandleExceptionResolver和SimpleMappingExceptionResolver

SpringMVC提供了自定义的异常处理器SimpleMappingExceptionResolver,使用方式:

该接口重写了类DefaultHandleExceptionResolver,并进行调用了doResolveException方法。

我们发现DefaultHandleExceptionResolver继承了AbstractHandlerExceptionResolver,且AbstractHandlerExceptionResolver里面重写了:

 且AbstractHandlerExceptionResolver里面重写了doResolveException方法。

 而DefaultHandleExceptionResolver继承了AbstractHandlerExceptionResolver,就必须要对当前方法进行重写:

1.1使用xml配置异常处理:

 我们在springmvc.xml文件里面进行配置如下所示:

 <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" >
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.ArithmeticException">error</prop>
            </props>
        </property>
    </bean>

同时我们新创建一个逻辑视图:error.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>错误</title>
</head>
<body>
<h1>error.html</h1>
</body>
</html>

同时我们在控制层里面的TestController.java进行如下所示:

package com.rgf.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
    @RequestMapping("test/hello")
    public  String testHello(){
        System.out.println(1/0);
          return "success";
    }
}

同时注掉上一章节所提到的拦截器的配置:

进行点击,出现如下所示: 

之后我们继续在springmvc.xml里面配置如下所示:

 <bean class="org.springfram
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一直再追梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值