Springboot拦截器与过滤器

记录操作日志在项目中算是比较重要的一部分。在刚刚进行这部分代码的编写时,我只是简单的把这个任务当作是一般的数据库操作,即在每个牵涉到数据库操作的mapping内加入相应的数据库日志记录,但是这样其实并不利于项目后期的维护。在经过了查找后,我发现拦截器可以对数据库的请求进行拦截,可以帮助我们完成数据库日志的记录操作。

拦截器

定义:拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。
作用:通过构建拦截链,从而完成权限验证、记录请求信息的日志、判断用户是否登录等工作。

过滤器

定义:一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息。
功能:
1)以常规的方式调用资源(即,调用servlet或JSP页面)。
2)利用修改过的请求信息调用资源。
3)调用资源,但在发送响应到客户机前对其进行修改。
4)阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。
3、拦截器与过滤器的区别 :
1) 拦截器是基于java的反射机制的,而过滤器是基于函数回调。
2) 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
3) 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4) 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
5) 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

具体用法

过滤器:https://blog.youkuaiyun.com/u014207158/article/details/82864764
拦截器:https://www.imooc.com/article/44595
拦截器实现日志功能:https://blog.youkuaiyun.com/qq_30737525/article/details/81532525

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值