面 试 题

过滤器和拦截器的区别

都是 Aop 思想的一种体现,用来解决项目中 某一类 问题的两种接口(工具),都可以对请求做一些增强

出身

过滤器来自 servlet

拦截器来自 spring

使用范围

过滤器 Filter 实现了 iavax.servlet.Filter 接口,也就是说过滤器的使用要依赖于 Tomcat 等容器,所以它只能在 web 程序中使用。

拦截器 Interceptor 实现了
org.springframework.web.servlet 接口,它是由 Spring 容器进行管理,并不依赖 Tomcat 等容器,既可以应用在 web 程序中,也可以应用在非 web 程序中(Application、Swing)。

实现原理

过滤器基于过滤器链 ApplicationFilterChain 实现

拦截器基于反射

使用场景

过滤器用于 字符编码设置、响应数据压缩(通用功能)

拦截器用于 是否登录判断、权限判断、日志等等(偏重业务功能)

触发时机

小测试

在这里插入图片描述

Mybatis 的执行器


SimpleExecutor:简单的执行器,每次执行操作都会开启一个新的 Statement 对象,用完就会立刻关闭

ReuseExecutor:重复使用的执行器,实现了对 Statement 对象的复用

BatchExecutor:可执行批处理任务的执行器。

所有的执行器都必须是在 SqlSession 的生命周期之内,

cookie,session,token

cookie:请求的时候将用户名和密码先发给服务端,服务端验证成功之后,就会将用户名响应给前端,前端就会将这个用户名存储在 cookie 中 ,后续与服务器进行其他交互的时候都需要带上 cookie 进行校验。
优点:
1、存储在客户端
2、帮助在客户端和服务器之间维护状态信息
缺点:
1、安全风险:有被篡改风险
2、容量限制:4KB
3、可用限制:用户可能禁用


session : 客户端发起一个请求到服务端(带上用户名和密码),服务端进行验权,验权通过之后会在服务端生成一个信息(针对当前用户生成一个唯一的session id)并返回给客户端,访问其他页面,请求的时候会带上这个session di 进行验权。
优点:
1、安全性高:存储在服务端
2、容量大:可以保存对象
缺点:
1、占用服务器资源
2、扩展性差(分布式集群)
3、依然需要依赖 cookie 跨域限制


token:客户端发送用户名密码,服务端进行验权,验权通过之后会创建一个token (jwt方式),把这个 token 字符串返回给客户端,当客户端访问其他页面就会带上这个 token 。(服务A生成的token也可以访问服务B,因为生成token是一套规则,只要服务器根据相应的规则解密即可)
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值