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

廊坊网站自助建站上海职业技能培训机构一览表

廊坊网站自助建站,上海职业技能培训机构一览表,如何给网站做宣传,采集的网站怎么做收录文章目录 前置拦截器代码拦截器注册疑问 前置 你使用 javaspringboot 常用在: 身份验证与授权,使用拦截器检查用户的身份验证状态和权限级别,确保只有经过验证且有适当权限的用户能够访问特定资源日志记录与审计性能分析与监控&#xff0…

文章目录

  • 前置
  • 拦截器代码
  • 拦截器注册
  • 疑问

前置

你使用

  • java
  • springboot

常用在:

  • 身份验证与授权,使用拦截器检查用户的身份验证状态和权限级别,确保只有经过验证且有适当权限的用户能够访问特定资源
  • 日志记录与审计
  • 性能分析与监控,拦截器可用于测量请求处理时间,收集性能指标,识别潜在的性能瓶颈
  • 跨域资源共享(CORS)配置,通过拦截器设置适当的HTTP响应头来允许或限制跨域请求

过滤器和拦截器非常相似,但是它们有很大的区别,简单明了的区别就是:

  • 过滤器可以修改request,而拦截器不能
  • 拦截器可以调用IOC容器中的各种依赖,而过滤器不能
  • 过滤器只能在请求的前后使用,而拦截器可以详细到每个方法

拦截器代码

@Component
public class FirstInterceptor implements HandlerInterceptor {//调用目标方法之前执行的方法//如果返回ture表示拦截器验证成功,执行目标方法//如果返回false表示拦截器验证失败,不再继续执行后续业务@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception {// 从 session 中获取用户信息Object user = request.getSession().getAttribute("user");if (user == null) {// 未登录,返回 401 错误response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "请先登录");return false; // 中断请求}System.out.println("FirstInterceptor: 用户已登录,放行请求");return true; // 放行请求}// 该方法在控制器处理请求方法调用之后、解析视图之前执行,可以通过此方法对请求域中的模型和视图做进一步修改public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {// ...}// 该方法在视图渲染结束后执行,可以通过此方法实现资源清理、记录日志信息等工作public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {// ...}
}

拦截器注册

@Configuration
public class MyConfig implements WebMvcConfigurer {//注入@Autowiredprivate FirstInterceptor firstInterceptor;//将拦截器@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(firstInterceptor).addPathPatterns("/**") //拦截所有的 url.excludePathPatterns("/user/login")//排除url: /user/login (登录).excludePathPatterns("/user/reg") //排除url: /user/reg   (注册).excludePathPatterns("/image/**")//排除 image(图像) 文件夹下的所有文件.excludePathPatterns("/**/*.js")//排除任意深度目录下的所有".js"文件.excludePathPatterns("/**/*.css");}
}

为什么没有标记 @Bean?方法是怎么被执行的?
Spring Boot 在启动时会自动扫描所有实现了 WebMvcConfigurer 接口的配置类,并调用其方法(如 addInterceptors)。Spring MVC 会通过反射调用 addInterceptors 方法,将拦截器注册到 Spring MVC 的处理链中

疑问

多个拦截器,执行顺序怎么配置?
Spring Boot 的拦截器顺序由 InterceptorRegistry.order() 控制,@Order 注解不会生效

@Configuration
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate AuthInterceptor authInterceptor;@Autowiredprivate LogInterceptor logInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 权限验证拦截器(优先级最高)registry.addInterceptor(authInterceptor).addPathPatterns("/**").order(1); // 数值越小优先级越高// 日志记录拦截器(优先级次高)registry.addInterceptor(logInterceptor).addPathPatterns("/**").order(2); // 数值越大优先级越低}
}

preHandle() 执行顺序,先注册先执行;
postHandle() 和 afterCompletion() 执行顺序,先注册确后执行

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

相关文章:

  • 帮人做网站 怎么收费搜索引擎优化的目的是
  • 武汉市建设局官方网站品牌策划公司排行榜
  • 天津企业网站建设公司软文推广系统
  • 网页下载链接怎么做百度关键词如何优化
  • 静态网站培训企业宣传片
  • 微信网站页面制作c++培训班学费一般多少
  • 网站做302重定向会怎么样宁波seo网络推广报价
  • 京东商城的网站怎么建设的seo快速排名软件网址
  • 的网站设计案例市场营销咨询
  • 关于建设门户网站的请示今天的新闻联播
  • 新疆电商网站建设seo培训资料
  • 网站建设首选九零后网络餐饮品牌全案策划
  • 海外房产网站建设百度搜索推广创意方案
  • 做二手车网站需要什么手续昆明做网站的公司
  • 如何做网站的线下推广谷歌浏览器chrome官网
  • wordpress邮箱备份济南网络优化哪家专业
  • 手机开发者选项在哪里关闭seo优化服务
  • wordpress主页教程谷歌seo网站建设
  • 网站做竞价对seo有影响吗seo的中文含义是什么意思
  • 58找工作求职招聘seo任务
  • 东城东莞网站建设seo外链建设的方法
  • 拉链网站源码cpm广告联盟平台
  • 怎样使网站排名靠前品牌网络营销推广方案策划
  • 响应式网站在线seo课程培训课程
  • 深圳给企业做网站优化网站推广教程排名
  • 建设工程标准 免费下载网站做网站设计哪里有
  • 遵义市网站建设灰色词首页排名接单
  • 甘肃企业网站建设百度平台推广联系方式
  • 电脑技术学习网站百度seo怎么提高排名
  • 网页版梦幻西游探案任务攻略郑州外语网站建站优化