JWT令牌
JWT全称 JSON Web Token(JSON Web 令牌)
jwt对原本的json格式进行了封装,用于在各方之间安全地将信息作为JSON对象传输.
-
JWT优点
简洁:可以通过URL,POST参数或者在HTTP header发送,数据量小,传输速度也很快.
自包含:负载中包含了所有用户所需要的信息,避免了多次查询数据库.
-
JWT的组成
jwt由三部分组成
第一部分:Header(头), 记录令牌类型、签名算法等。
第二部分:Payload(有效载荷),个人非敏感数据、默认信息等。
第三部分:Signature(签名) Base64
三部分由点隔开
过滤器
Filter表示过滤器,是 JavaWeb三大组件(Servlet、Filter、Listener)之一。
过滤器可以拦截请求,从而实现一些特殊的功能.
过滤器的基本操作步骤:
1.定义一个类,实现Filter接口, 重写抽象方法
2.在类上加上@WebFilter注解 定义urlPatternss属性为要拦截的路径
3.引导类上加 @ServletComponentScan 开启Servlet组件支持
过滤器当中我们拦截到了请求之后,如果希望继续访问后面的web资源,就要执行放行操作,放行就是调用 FilterChain对象当中的doFilter()方法,在调用doFilter()这个方法之前所编写的代码属于放行之前的逻辑。
拦截路径:
拦截具体路径 /login
目录拦截 /emps/*
拦截所有 /*
过滤器链:
在web服务器中定义了两个过滤器,就形成了一个过滤器链.
过滤器链在执行的时候会一个一个过滤器执行,先执行第一个过滤器,放行之后来到第二个过滤器,再放行再向后直到最后一个过滤器放行,再访问资源,访问资源过后回从后往前执行过滤器放行之后的逻辑代码,直到第一个过滤器执行完放行后代码,再给浏览器响应.
拦截器
- 是一种动态拦截方法调用的机制,类似于过滤器。
- 拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行。
- 拦截器的作用:拦截请求,在指定方法调用前后,根据业务需要执行预先设定的代码。
拦截器的实现步骤:
1.定义一个拦截器类,实现HandlerInterceptor接口并实现所有抽象方法.
2.将拦截器交给Spring管理.
3.增加一个配置类,实现 WebMvcConfigurer接口,重写 addInterceptors方法,在内部注册拦截器。
- preHandle方法:目标资源方法执行前执行。 返回true:放行 返回false:不放行
- postHandle方法:目标资源方法执行后执行
- afterCompletion方法:视图渲染完毕后执行,最后执行.