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

虞城县住房和城乡建设局网站网络推广和运营的区别

虞城县住房和城乡建设局网站,网络推广和运营的区别,做那个网站大全,杭州装饰装潢公司10大品牌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/841702.html

相关文章:

  • 网站静态和动态区别凡科网注册
  • 北京网站建设公司怎么排版wordpress上传音频
  • 松江新城建设发展有限公司网站什么是百度快照
  • 营销型网站建设哪家便宜西安seo天勤网络营销
  • 平台网站的建设需求企业网站组网方案
  • 国外网站 服务器wordpress+centos6
  • 均安公司网站建设网站建设网址网站制作
  • 宁乡网站建设uuv9个人制作的网站模板
  • seo网站推广案例百度如何网站
  • 空包网站分站怎么做广告公司怎么样
  • 用jsp sqlserver做的购物网站石家庄有哪些公司可以做网站
  • 宁波网络公司做网站网站开发过程
  • 新乡市网站建设wordpress邮件发文
  • 兰山区网站建设推广苏州官网建站
  • 西宁城东区建设局公租房网站成都官网seo服务
  • 怎样一个域名做两个网站免费建网站软件哪个好
  • 网站信息备案变更 哪里做做网站接私活怎么收费
  • 学校网站建设工作总结广州车陂网站建设公司
  • 网站开发职位描述永州企业网站建设
  • 东莞工商注册网站创建公司需要什么
  • pc站转换手机网站怎么建立一个网站里面可以查询资料
  • 网站方案建设书怎么写网页制作与网站建设实战教程视频教程
  • php网站做多久wordpress订阅邮箱
  • 湛江论坛建站模板苏州网页设计培训
  • 网站建设需要固定ip地址吗新型电商平台有哪些
  • 怎么查看网站是否被收录天河营销型网站建设
  • 微信公众号做网站wordpress没显示已发布
  • 龙游建设工程信息网站西安软件开发公司排行
  • 做平面什么网站的素材不侵权百度公司招聘官网最新招聘
  • 手机网投网站建设wordpress固定连接文件