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

网站运营专员常见网站推广方式

网站运营专员,常见网站推广方式,佛山网站公司建设网站,交互式网站开发技术一、Interceptor 的核心概念 Interceptor(拦截器) 是 Spring MVC 提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑。其核心作用包括: • 预处理:在控制器方法执行前进行权限校验、日志记录等。 • 后处理&am…

一、Interceptor 的核心概念

Interceptor(拦截器) 是 Spring MVC 提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑。其核心作用包括:
• 预处理:在控制器方法执行前进行权限校验、日志记录等。

• 后处理:在控制器方法执行后修改响应数据或记录结果。

• 资源清理:在整个请求完成后释放资源或处理异常。

与 Filter 的区别:

特性Interceptor(拦截器)Filter(过滤器)
作用范围针对 Spring MVC 的控制器层作用于 Servlet 容器层面
依赖框架Spring MVC 管理Servlet 原生规范
数据访问可操作 ModelAndView仅能操作 HttpServletRequest/Response

在这里插入图片描述


二、Interceptor 的创建与配置

  1. 实现拦截器类
    继承 HandlerInterceptor 接口,重写以下方法:
public class AuthInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {// 请求前处理(如权限校验)return true; // 返回 false 中断请求}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {// 控制器执行后、视图渲染前处理(如修改 Model 数据)}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {// 请求完成后处理(如资源清理)}
}
  1. 注册拦截器
    通过 WebMvcConfigureraddInterceptors 方法配置:
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new AuthInterceptor()).addPathPatterns("/api/**")     // 拦截路径.excludePathPatterns("/login"); // 排除路径}
}

• 路径匹配规则:支持 Ant 风格(如 /user/* 匹配单层路径,/admin/** 匹配多级路径)。

• 多拦截器顺序:通过 Order 注解或实现 Ordered 接口控制优先级,值越小优先级越高。


三、拦截器的执行顺序

假设注册了 Interceptor1 和 Interceptor2:

  1. preHandle 方法:按注册顺序执行(Interceptor1 → Interceptor2)。
  2. postHandle 方法:按注册逆序执行(Interceptor2 → Interceptor1)。
  3. afterCompletion 方法:按注册逆序执行(Interceptor2 → Interceptor1)。

中断场景:若某一拦截器的 preHandle 返回 false,后续拦截器和控制器均不执行,但已通过 preHandle 的拦截器的 afterCompletion 仍会执行。


四、典型应用场景

  1. 权限校验
    preHandle 中检查用户登录状态或角色权限,拒绝非法请求。

    if (request.getSession().getAttribute("user") == null) {response.sendRedirect("/login");return false;
    }
    
  2. 日志记录
    记录请求路径、参数、耗时等信息:

    long startTime = System.currentTimeMillis();
    request.setAttribute("startTime", startTime);
    // 在 afterCompletion 中计算耗时
    
  3. 性能监控
    统计接口响应时间,优化慢请求。

  4. 数据预处理
    postHandle 中统一添加响应头或加密敏感数据。


五、注意事项与最佳实践

  1. 性能优化
    • 避免在拦截器中执行耗时操作(如远程调用)。

    • 合理设置拦截路径,减少不必要的拦截。

  2. 常见问题排查
    • 拦截器未生效:检查路径匹配规则、是否注册到 Spring 容器。

    • 顺序混乱:通过 @Order 明确优先级。

  3. 与 AOP 结合
    拦截器适用于请求生命周期中的横切逻辑,而 AOP 更适用于方法级别的切面(如事务管理)。


六、完整示例

  1. 日志拦截器
public class LogInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {System.out.println("请求开始: " + request.getRequestURI());return true;}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {System.out.println("请求完成: " + request.getRequestURI());}
}
  1. 配置类
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LogInterceptor()).addPathPatterns("/**");registry.addInterceptor(new AuthInterceptor()).addPathPatterns("/admin/**").order(1); // 高优先级}
}

总结

Spring Interceptor 是处理请求生命周期横切逻辑的利器,通过灵活配置路径和优先级,可实现权限控制、日志记录等通用功能。结合 preHandlepostHandleafterCompletion 的分阶段处理,能有效提升代码复用性和可维护性。

http://www.dtcms.com/a/551587.html

相关文章:

  • 湖南建设网站php能做手机网站吗
  • 手机网站的价值湖南住房与城乡建设部网站
  • 下载学校网站模板下载地址免费asp网站后台管理系统
  • 微信公众号做视频网站wordpress下不了插件
  • 网站上的幻灯片如何做化妆品网站主页设计
  • 网站开发支持上传gif学校网站规划
  • 北京网站建设91086网站静态生成目录 名称 建议
  • 教育类手机网站模板下载好的网站设计培训学校
  • 个人网站不能做淘宝客用万网做网站
  • 做智能网站系统下载地址网站建设的主要客户群体
  • 青岛同拓网站建设有限公司深圳网站制作易捷网络
  • 私募基金网站建设要求wordpress wpcontent
  • 企业网站做口碑营销襄阳网络营销是什么
  • 做公众号的网站有哪些如何用电脑做网站
  • 网站建设域名所有权wordpress 添加滑块
  • 12306网站开发人员wordpress换域名了 登陆不了
  • 外国的网站是什么网站平面设计和网页设计哪个工资高
  • 门户网站建设依据深圳比较大的外包公司有哪些
  • 济南最好的网站开发百度关键词seo优化
  • 献县制作网站深圳乐从网站建设
  • 网站原型设计流程可信网站认证费用
  • 网上销售型的企业网站做公众号的网站模板
  • 建设网站松岗网站建设个人年终总结
  • 网站建设需求说明书模板wordpress小工具功能
  • 南宁网站建设哪家公个人网站制作程序
  • 南皮县网站建设价格秀屿区建设局网站
  • 如何做新增网站备案深圳市住宅和建设网站
  • 珠海快速网站建设wordpress悬浮插件
  • 备案网站名称怎么写w78企业网站后台怎么做
  • 贵阳网站制作计划短视频seo推广