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

如何制作一个单页网站指数分布

如何制作一个单页网站,指数分布,网络营销工具和方法,二级域名做网站有哪些缺点一、拦截器核心概念 作用:拦截器是 Spring 框架提供的核心功能,用于在请求处理前后执行预定义逻辑,实现统一处理(如登录校验、日志记录等)。 核心方法: public class LoginInterceptor implements Handl…

一、拦截器核心概念

作用:拦截器是 Spring 框架提供的核心功能,用于在请求处理前后执行预定义逻辑,实现统一处理(如登录校验、日志记录等)。

核心方法

public class LoginInterceptor implements HandlerInterceptor {// 目标方法执行前调用(核心控制点)@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {return true; // true=放行, false=拦截}// 目标方法执行后调用(Controller 方法执行完毕)@Overridepublic void postHandle(...) { ... }// 整个请求完成后的最终处理(视图渲染后)@Overridepublic void afterCompletion(...) { ... }
}

二、拦截器使用步骤
1. 定义拦截器
@Slf4j
@Component
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, ...) {// 登录校验示例HttpSession session = request.getSession(false);if (session == null || session.getAttribute("USER") == null) {response.setStatus(401); // 401 Unauthorizedreturn false; // 拦截请求}return true; // 放行}
}
2. 注册拦截器
@Configuration
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate LoginInterceptor loginInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor).addPathPatterns("/**")          // 拦截所有路径.excludePathPatterns("/login")    // 排除登录接口.excludePathPatterns("/**/*.js")  // 排除静态资源.excludePathPatterns("/**/*.css");}
}

三、拦截路径配置规则
路径模式匹配示例不匹配示例
/*/user/book/user/login
/**/user/user/profile-
/book/*/book/add/book/detail/book/1/author
/book/**/book/book/1/author/user/books

四、拦截器执行流程


五、登录校验实战案例
1. 拦截器实现
public boolean preHandle(...) {if (request.getSession().getAttribute("USER") == null) {response.setStatus(401);return false;}return true;
}
2. 前端处理拦截
// AJAX 错误处理
$.ajax({error: function(error) {if (error.status === 401) {window.location.href = "/login.html"; // 跳转登录页}}
});

六、设计模式:适配器原理

拦截器底层实现

// DispatcherServlet 核心代码
protected void doDispatch(...) {// 1. 获取拦截器链HandlerExecutionChain mappedHandler = getHandler(request);// 2. 执行 preHandle()if (!mappedHandler.applyPreHandle(request, response)) {return; // 拦截请求}// 3. 执行 Controller 方法mv = ha.handle(...);// 4. 执行 postHandle()mappedHandler.applyPostHandle(...);// 5. 渲染视图后执行 afterCompletion()processDispatchResult(...);
}

适配器模式应用

  • HandlerAdapter 适配不同类型的控制器(如 @ControllerHttpRequestHandler

  • 解决不同处理器接口的兼容问题


七、最佳实践建议
  1. 路径排除:静态资源(JS/CSS/图片)必须排除

  2. 性能优化:在 preHandle() 中尽早返回拦截结果

  3. 异常处理:结合 @ControllerAdvice 统一处理拦截器抛出的异常

  4. 执行顺序:多个拦截器按注册顺序执行 preHandle(),逆序执行 postHandle()

  5. 生产建议

    • 登录拦截器排除 /login/health 等公开接口

    • 敏感操作(如支付)使用独立拦截器增强校验

// 多拦截器配置示例
registry.addInterceptor(new LogInterceptor()).order(1);
registry.addInterceptor(new AuthInterceptor()).order(2);

总结核心价值

  1. 解耦:将通用逻辑(如鉴权)从业务代码剥离

  2. 复用:一次编写,全局生效

  3. 可维护:统一修改拦截逻辑,避免散弹式修改

  4. 安全:强制实施安全策略(如所有接口必须认证)

通过拦截器 + 统一返回格式 + 统一异常处理,可构建高可维护性的 Spring Boot 后端架构,

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

相关文章:

  • 龙岗高端建设网站建设如何自己建设网站
  • 网站死链排查个人网页设计制作网站模板
  • 开网站需要哪些程序什么软件可以免费发广告
  • 锦州网站做优化提高工作效率图片
  • 请别人做网站大概要多少钱上海seo优化bwyseo
  • 网站建设销售经理职责seo是搜索引擎优化吗
  • 网站建设是怎么赚钱的站长之家收录查询
  • 上海建筑建材业门户网站推广手段和渠道有哪些
  • 大连手机自适应网站制作价格最新新闻热点事件2023
  • 已经有网站了 怎么做app徐州百度推广总代理
  • 制作个网站多少钱百度推广代理商查询
  • 黄岛网站建设服务推广网站文案
  • 淘宝直接怎么做网站网站运营主要做什么
  • 网站建设管理调研提纲网奇seo赚钱培训
  • 网站建设服务套餐网络营销软件下载
  • wordpress推广锦州seo推广
  • 网站可以做匿名聊天吗旺道seo优化
  • 用 net做网站北京网络推广公司wyhseo
  • 很多域名301定重到另一网站免费网络营销方式
  • 织梦做的网站图片显示不了广州seo工作
  • 网页打不开无法访问此网站石家庄seo代理商
  • 清新区住房和城乡建设局网站怎么搭建网站
  • 建设网站公司那里好相关的热搜问题留电话的广告网站
  • 做网站源代码需要买吗天机seo
  • 任房保障和城乡建设局网站安徽搜索引擎优化
  • 类似非小号的网站怎么做百度明星人气榜入口
  • 做美食的视频网站有哪些网站建设高端公司
  • 江苏网站建设公司哪家好国际最新消息
  • app和网站开发语言的区别常州seo关键词排名
  • 网站开发及运营成本网站推广方式