`

spring mvc拦截器和异常处理

阅读更多
装配与自定义拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理,通常还有如下作用:

  • 日志记录
  • 权限检查
  • 性能监控
  • 通用行为


实现
SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的:

  • 定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口
  • 定义的Interceptor类继承实现了HandlerInterceptor 接口的类(比如 HandlerInterceptorAdapter 类)


HandlerInterceptor 有三个方法:

preHandle (HttpServletRequest request, HttpServletResponse response, Object handle),在请求处理之前进行调用。
postHandle (HttpServletRequest request, HttpServletResponse response, Object handle, ModelAndView modelAndView),请求进行处理之后调用。
afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handle, Exception ex) ,整个请求结束之后(渲染了对应的视图之后)调用。

配置文件如下设置:

异常处理
  • 使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver
  • 实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器
  • 使用@ExceptionHandler注解实现异常处理



简单的异常处理,推荐使用SimpleMappingExceptionResolver即可:
配置文件中如下设置:


实现自己的HandlerExceptionResolver, 第4个参数表示对哪种类型异常进行处理




使用@ExceptionHandler注解实现异常处理:


增加BaseController类,并在类中使用@ExceptionHandler注解声明异常处理
使所有需要异常处理的Controller都继承该类
  • 大小: 83.2 KB
  • 大小: 125.7 KB
  • 大小: 75.4 KB
  • 大小: 122.7 KB
分享到:
评论

相关推荐

    Spring MVC 拦截器

    如果返回`false`,则整个请求结束,不再执行后续的拦截器和控制器方法。 ```java public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { /...

    spring mvc拦截器过滤json中的null值

    本教程将详细介绍如何使用Spring MVC的拦截器来实现这一功能。 首先,了解拦截器(Interceptor)在Spring MVC中的角色。拦截器是Spring MVC提供的一种AOP(面向切面编程)特性,允许我们在请求处理之前、之后或者在...

    Spring MVC 拦截器入门例子

    Spring MVC 拦截器是基于Java的Web开发框架Spring MVC中的一个重要组件,它允许开发者在请求被控制器处理之前或之后执行自定义逻辑。拦截器主要用于实现通用功能,如权限验证、日志记录、性能监控等,从而提高代码的...

    spring MVC(新增拦截器demo)

    通过学习这个“spring MVC(新增拦截器demo)”项目,你不仅能够理解Spring MVC拦截器的基本使用,还能掌握如何将拦截器应用于实际的需求场景。拦截器的灵活运用可以大大提高代码的复用性和维护性,使得Spring MVC应用...

    spring mvc 拦截器获取请求数据信息.rar

    本压缩包“spring mvc 拦截器获取请求数据信息.rar”提供了关于如何在Spring MVC中使用拦截器来获取和处理请求数据的示例代码。 首先,我们来理解一下Spring MVC中的拦截器是如何工作的。拦截器是基于Java的动态...

    Spring MVC--9.自定义拦截器、异常处理

    Spring MVC--9.自定义拦截器、异常处理

    详解Spring MVC拦截器实现session控制

    在本篇文章中,我们详细探讨了如何通过Spring MVC拦截器实现session的控制,特别是在处理用户登录状态和防止重复登录的场景。 首先,session监听是实现session控制的一种常见方法,通过实现特定的监听器接口,可以...

    Spring MVC 教程快速入门 深入分析

    九、Spring MVC中的拦截器:拦截器是Spring MVC提供的一个可插入的组件,可以用来实现请求预处理和后处理。拦截器可以在请求到达控制器之前进行拦截,并对请求或响应进行一些预处理工作。 十、Spring MVC如何使用...

    Spring MVC入门教程

    九、spring mvc 中的拦截器: 十、spring mvc 如何使用拦截器? 十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? ...

    spring mvc xml配置拦截器

    下面将详细介绍创建和配置Spring MVC拦截器的步骤。 1. **创建自定义拦截器** 首先,我们需要创建一个实现`HandlerInterceptor`接口的类。这个接口包含三个方法: - `preHandle(HttpServletRequest request, ...

    Spring MVC 教程 快速入门 深入分析

    九、spring mvc 中的拦截器: 十、spring mvc 如何使用拦截器? 十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? ...

    SpringMVCDemo:Spring MVC 框架知识案例

    1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 ...14.Spring MVC 拦截器案例 15.Spring MVC 异常处理案例

    java之spring mvc之拦截器.docx

    虽然拦截器和过滤器都能在请求处理过程中插入自定义逻辑,但它们有明显的区别。过滤器是Servlet规范的一部分,作用在整个Web应用程序的范围,而拦截器是Spring MVC特有的,只对Spring MVC的请求处理路径起作用。...

    spirngmvc拦截器,拦截处理body和表单值.rar

    总结来说,Spring MVC的拦截器和过滤器是控制层的重要组成部分,它们允许我们在请求生命周期的不同阶段插入自定义逻辑。通过`WebMvcConfigurer`接口,我们可以灵活地配置这些组件,以满足特定的应用场景需求,无论是...

    spring mvc

    为了统一处理异常,Spring MVC 提供了全局异常处理机制。可以通过定义 `ExceptionHandler` 方法或使用 `@ControllerAdvice` 注解的类来实现全局异常处理。 #### 十二、记录全局异常到日志 在 Spring MVC 中,可以...

    SpringMVC 中的拦截器与异常处理

    总结来说,SpringMVC中的拦截器和异常处理机制为开发者提供了强大的工具来增强应用的控制流和错误处理能力。通过合理利用拦截器,我们可以实现通用的功能,如用户认证和授权,而异常处理则能确保在出现错误时提供...

    Spring mvc 教程

    - **处理表单中的文件上传**:通过控制器方法来接收和处理上传的文件。 #### 异常处理 (Exception Handling) - **处理器异常解析器 HandlerExceptionHandler**:专门处理控制器中抛出的异常。 - **@...

    Mastering Spring MVC 4(2015.09)源码

    总的来说,"Mastering Spring MVC 4(2015.09)源码"提供了深入学习Spring MVC的机会,你可以通过阅读和分析源码来了解如何配置DispatcherServlet、怎样编写控制器、如何进行数据绑定与验证,以及如何利用拦截器等特性...

Global site tag (gtag.js) - Google Analytics