当前位置: 首页 > wzjs >正文

设计公司名字logo北京网络排名优化

设计公司名字logo,北京网络排名优化,安微省建设厅田网站,企业logo设计注意事项HandlerInterceptor 接口详解 1. 接口方法说明 方法作用执行时机返回值/注意事项preHandle请求处理前拦截在控制器方法执行前调用返回 false 中断后续流程;返回 true 继续执行postHandle控制器方法执行后拦截在控制器方法返回结果后,视图渲染前调用无返…

HandlerInterceptor 接口详解

1. 接口方法说明
方法作用执行时机返回值/注意事项
preHandle请求处理前拦截在控制器方法执行前调用返回 false 中断后续流程;返回 true 继续执行
postHandle控制器方法执行后拦截在控制器方法返回结果后,视图渲染前调用无返回值,不可中断流程
afterCompletion请求完全结束后拦截在视图渲染完成后调用(无论是否成功)无返回值,用于资源清理

2. 完整示例代码
2.1 自定义拦截器A(返回 false)
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@Component
public class InterceptorA implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {System.out.println("InterceptorA.preHandle: 开始拦截请求");// 返回 false 中断请求流程return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {System.out.println("InterceptorA.postHandle: 此处不会执行(因 preHandle 返回 false)");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {System.out.println("InterceptorA.afterCompletion: 请求已中断,但此方法仍会被调用");}
}
2.2 自定义拦截器B(正常流程)
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@Component
public class InterceptorB implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {System.out.println("InterceptorB.preHandle: 正常拦截");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {System.out.println("InterceptorB.postHandle: 控制器方法执行后");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {System.out.println("InterceptorB.afterCompletion: 请求完成");}
}
2.3 注册拦截器配置
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate InterceptorA interceptorA;@Autowiredprivate InterceptorB interceptorB;@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 注册顺序:A 先于 Bregistry.addInterceptor(interceptorA).addPathPatterns("/**");registry.addInterceptor(interceptorB).addPathPatterns("/**");}
}
2.4 控制器示例
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class DemoController {@GetMapping("/test")public String test() {System.out.println("控制器方法执行:此请求将被拦截器A中断");return "Hello World";}
}

3. 输出结果分析(访问 /test
InterceptorA.preHandle: 开始拦截请求
InterceptorA.afterCompletion: 请求已中断,但此方法仍会被调用
  • 拦截器A的 preHandle 返回 false
    • 拦截器B的 preHandle 不会被调用。
    • 控制器方法不会执行。
    • 拦截器B的 postHandleafterCompletion 也不会执行。
    • 拦截器A的 afterCompletion 仍会被调用(因已进入拦截器链)。

4. 常见处理场景示例

在拦截器中可实现以下功能:

  • 日志记录:记录请求时间、URL、IP 等(如示例中的 System.out.println)。
  • 权限校验:检查用户登录状态或角色权限。
  • 性能监控:计算接口响应时间。
  • 请求参数预处理:统一处理请求参数(如解密、格式化)。

5. 拦截器执行顺序总结表
阶段执行顺序规则示例(A注册在 B 前)
preHandle按注册顺序依次执行A → B
postHandle按注册逆序依次执行B → A
afterCompletion按注册逆序依次执行B → A

注意:若某个 preHandle 返回 false,后续拦截器和控制器方法均被跳过,但已执行的拦截器的 afterCompletion 仍会执行。

http://www.dtcms.com/wzjs/356314.html

相关文章:

  • 最好的网站建设免费的网络推广的渠道和方式有哪些
  • php动态网站开发案例百度推广账户优化
  • 台州网站设计公司网站网络广告推广平台
  • 专业网站建设分类标准万网官网域名查询
  • 怎样在外贸网站上做土特产永久免费自动建站
  • 南昌建设局seo专业培训班
  • 网站设计编程网络营销郑州优化推广公司
  • 品牌型网站建设理论知乎关键词搜索
  • 商城网站建设我想创建一个网络平台
  • 手机怎么做优惠券网站百度搜索引擎
  • 网站建设制作视频广东seo点击排名软件哪家好
  • 房产微网站爱战网关键词工具
  • 大连的网站建设最新国际新闻事件今天
  • 淘宝刷单的网站建设2022年明星百度指数排行
  • wordpress网站搬家企业网站seo哪里好
  • 服务器做php网站吗网络推广有几种方法
  • 电子商务网站建设与全程实例近一周新闻热点事件
  • 有免费的网站建设友情链接举例
  • 网络营销方法有什么yoast seo教程
  • 成品短视频app的优势上海百度推广优化排名
  • 山西格泰网站建设青岛网站优化
  • 电脑版网站制作公司学it一年的学费大概是多少
  • 登录网站怎么做网站推广排名公司
  • 网站建设面试自我介绍网络营销类型
  • 提供邯郸移动网站建设营销推广方式
  • 网站制作的一般步骤怎样把广告放到百度
  • 找公司做网站百度搜索量最大的关键词
  • 猪八戒做网站要多少钱苏州seo网络推广
  • 建设网站报价独立站怎么搭建
  • 荥阳做网站优化网站seo技术教程