SpringMVC异常处理器(基于xml配置和注解配置的异常处理)


1、基于配置的异常处理

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

  • HandlerExceptionResolver接口的实现类有:DefaultHandlerExceptionResolver和SimpleMappingExceptionResolver

  • SpringMVC提供了自定义的异常处理器SimpleMappingExceptionResolver,基于xml配置使用方式:

springmvc配置文件里配置:

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
        <props>
        	<!--
        		properties的键表示处理器方法执行过程中出现的异常
        		properties的值表示若出现指定异常时,设置一个新的视图名称,跳转到指定页面
        	-->
            <prop key="java.lang.ArithmeticException">error</prop>
        </props>
    </property>
    <!--
    	exceptionAttribute属性设置一个属性名,将出现的异常信息在请求域中进行共享
    -->
    <property name="exceptionAttribute" value="ex"></property>
</bean>

controller层代码:

 @RequestMapping("/testExceptionHandler")
 public String testExceptionHandler() {
     System.out.println(1/0);
     // 默认跳转的页面
     return "success";
 }

运行结果:
在这里插入图片描述

2、基于注解的异常处理

在这里插入图片描述

//@ControllerAdvice将当前类标识为异常处理的组件
@ControllerAdvice
public class ExceptionController {

    //@ExceptionHandler用于设置所标识方法处理的异常
    @ExceptionHandler(ArithmeticException.class)
    //ex表示当前请求处理中出现的异常对象
    public String handleArithmeticException(Exception ex, Model model){
        model.addAttribute("ex", ex);
        return "error";
    }

}

运行结果:
在这里插入图片描述

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Spring MVC 的 XML 配置文件(通常命名为 springmvc.xml)用于配置 Spring MVC 应用程序的各种组件,如控制器、视图解析器、处理器映射器等。 这个配置文件通常包含以下内容: 1. <context:component-scan>标签:用于启用组件扫描,扫描应用程序中的控制器、服务层组件等。 2. <mvc:annotation-driven>标签:启用注解驱动的 Spring MVC,可以使用注解配置控制器等组件。 3. <bean>标签:用于配置视图解析器、处理器映射器等组件。 4. <mvc:resources>标签:配置静态资源的处理。 5. <mvc:view-controller>标签:配置不需要控制器就能处理的请求。 这只是 Spring MVC XML 配置文件的一个简单概述,具体配置方式可以参考 Spring 官方文档。 ### 回答2: SpringMVC基于Spring框架,是一种基于MVC(Model-View-Controller)设计模式的Web框架。在SpringMVC应用中,springmvc.xml是重要的配置文件之一。 这个文件是用于指定Spring MVC应用程序的配置详细信息的。 1. DispatcherServlet配置 DispatcherServlet是SpringMVC框架的核心,所有的请求都会由它来处理springmvc.xml中可以配置DispatcherServlet,指定请求映射和对应的控制器,异常处理等。 2. 视图解析器配置 决定了一个请求如何响应一个具体的视图。 在Spring MVC中,视图解析器负责将由Controller返回的逻辑视图名匹配到具体的视图页面上。 3. Handler映射器配置 Handler映射器用于映射请求URL到Handler类。 4. 拦截器配置 SpringMVC允许我们通过配置拦截器来实现某些功能的统一处理。比如身份验证、授权检查等。 5. 异常解析器配置 SpringMVC提供了一套完善的异常处理机制,我们可以通过定义一个ExceptionResolver来处理异常。 6. 标签库配置 标签库定义了一系列标签,这些标签让JSP页面更加易于编写和维护。 7. 文件上传配置 Spring MVC框架提供了一套完整的文件上传解决方案,可以通过配置multipartResolver,处理客户端发送的multipart/form-date请求。 8. 消息转换器配置 Spring MVC框架提供了一套消息转换器的机制,可以将客户端传递的数据转化为任意格式的数据,满足不同的需求。 总的来说,springmvc.xmlSpringMVC应用程序中一个很重要且必须的配置文件,并且提供了许多实用的配置信息,对于理解SpringMVC框架,搭建SpringMVC应用程序,优化应用程序都非常重要。 ### 回答3: Spring MVC 是一个基于 Spring 框架的 Web 框架,其最大特点是模块化和松散耦合。在使用 Spring MVC 进行 Web 应用程序开发时,需要按照一定规范对其进行配置。其中 springmvc.xml 是 Spring MVC 的配置文件,它负责处理 Spring MVC 相关的配置信息。 首先,springmvc.xml 配置文件要包含命名空间的申明。这个命名空间通常是 xmlns:context 和 xmlns:mvc。其中,xmlns:context 命名空间提供了一个环境,Spring 能够自动扫描组件,使其能够被自动通过依赖注入来形成一个完整的 Web 应用程序。而 xmlns:mvc 命名空间提供了 Spring MVC 应用程序必需的诸如 HandlerMapping 之类的类的支持。 接下来,在 springmvc.xml 配置文件中需要配置 Spring MVC 的核心组件 HandlerMapping,这个组件负责映射请求和Controller的方法。 HandlerMapping 中最常用的是 BeanNameUrlHandlerMapping 和 SimpleUrlHandlerMapping。其中 BeanNameUrlHandlerMapping 将会根据 bean 的名称来匹配请求访问路径,而 SimpleUrlHandlerMapping 则通过定义请求请求映射器的键值对来进行匹配。 在 HandlerMapping 的基础上,还需要配置 HandlerAdapter,该组件负责执行 Controller 方法的逻辑。Spring MVC 默认提供的 HandlerAdapter 是 SimpleControllerHandlerAdapter,当然也可以扩展此类以适应自己的需要。 在 Spring MVC 中,视图解析器负责根据请求的结果选择展示的视图。通常情况下,视图解析器会将请求转发到 jsp 文件上,然后在 jsp 文件中进行展示。而 Spring MVC 中最常用的视图解析器是 InternalResourceViewResolver。可以在配置文件中配置该视图解析器,并为其指定 jsp 文件的位置,以及是否需要向前缀和后缀中添加特定的字符串。 最后,在 Spring MVC 中,还需要配置一些参数,如路径处理设置等等。其中,最为常见的是设置 controller 扫描的包路径,通过设置 mvc:annotation-driven 或 component-scan 来实现。 总之,springmvc.xml 配置文件中包含了 Spring MVC 应用程序的核心设置,这个文件需要仔细配置,才能让 Spring MVC 应用程序正常运行。需要根据具体的需求进行配置,从而实现一个完整的 Spring MVC 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值