HandlerInterceptor中三个方法的区别
时间: 2024-06-14 18:02:13 浏览: 218
浅谈SpringMVC HandlerInterceptor诡异问题排查
HandlerInterceptor是Spring MVC中的一个重要概念,它是一个拦截器链,可以在控制器方法执行前后执行一些额外的操作。HandlerInterceptor接口有三个默认的方法:
1. `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`: 这个方法在请求处理器(handler)处理请求之前被调用。在这里,你可以检查请求、设置共享数据、进行权限校验等。如果决定继续执行请求,返回`true`;如果想要中断处理,返回`false`,请求将不再继续。
2. `postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, Object result)`: 在处理器处理请求并返回结果之后,这个方法会被调用。通常用于处理和修改返回的结果,例如添加全局的异常处理、改变响应内容等。返回的是已经处理后的`result`。
3. `afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)`: 这是最后一个被调用的方法,无论请求处理是否正常结束(包括没有异常和有异常),都会在这个时候执行。主要用来清理资源,如关闭连接、日志记录等。如果请求处理有异常,`ex`参数会包含该异常。
阅读全文