首页 > 编程知识 正文

登录用拦截器还是过滤器(过滤器和监听器的作用和原理)

时间:2023-05-04 14:13:35 阅读:92083 作者:2967

由于在开发中使用过滤器、听众、拦截器的情况非常多,今天我们来谈谈这三者在日常开发中是如何使用的。

概念和使用场景

监听程序

监听器是servlet规范中定义的特殊类。 用于侦听创建和销毁域对象(如servlet上下文、http会话和servlet请求)的事件。 接收域对象属性已更改的事件。 用于在事件发生前、发生后进行必要的处理。

实现方法:实现接口javax.servlet.http.http会话监听器

主要可用于以下领域:

统计联机人数和联机用户系统启动时加载的初始化信息,记录访问网站的次数和用户的访问路径。 过滤器

Filter是servlet技术中最实用的技术,Web开发人员通过Filter技术管理Web服务器管理的所有Web资源。 在请求访问tomcat容器之后,在请求访问servlet之前,将对过滤器进行预处理。 请求结束后返回也是在servlet处理结束后,返回前端之前。

拦截Jsp、servlet、静止图像文件、静止html文件等,实现特殊功能。 实现高级功能,例如URL级访问控制、机密术语过滤和响应信息压缩。 主要用于用户请求的预处理。 它还可以用于http服务器响应的后处理。 使用Filter的完整过程: Filter预处理用户请求,向servlet传递请求以生成响应,最后Filter对服务器响应进行后处理。 过滤器仅在servlet之前和之后工作,因此无法捕获异常或检索bean对象

实现方法:实现接口javax.servlet.filter

拦截器

拦截器用于在某个方法或字段被访问之前进行拦截器,然后在之前或之后进行某些操作。 例如日志、安全性等。 常用的拦截器方法通过动态代理方式实现。 这样可以进行权限验证,判断用户是否已登录,也可以像12306那样判断当前时间是否为购票时间。 通常,在项目开发中基本上建立异常统一的监听处理的场所。 比较一下就会发现,其实滤波器可以做的事情是拦截器做的,而二拦截器做的事情不一定是滤波器做的。

实现方法:实现org.spring框架. web.servlet .处理程序接口

三者的对比

拦截器和过滤器:过滤前-切断前-执行操作/控制器-切断后-过滤后

为了让大家明白,这里借用网上的几张图:

实战

项目将继续使用以前文章中使用的项目。

添加过滤器

自定义过滤器也可以使用servlet 3.0注释进行设置。 步骤3中的@ web过滤器是3.0的注释

1 )将@ServletComponentScan添加到启动类并进行扫描

2 )创建新的Filter类、implements Filter,并实现相应的接口

3 ) @WebFilter将一个类标记为filter,然后用spring进行扫描

urlPatterns :支持正则表达式的拦截规则

4 )控制chain.doFilter的方法的调用,实现是否释放。 web APP应用程序resp.sendredirect (' /索引. html ' ); 场景:权限控制、用户登录(前端以外的后端分离场景)等

添加监听程序

听众会联想到听众的设计模式。 和考试的时候一样,考官盯着你们看。 如果有人工作,考官会继续监督你们。 如果有人作弊,考官很快就会拿走。

添加窃听器

在执行controller方法之前调用preHandle方法。

添加配置类

测试类,然后编写控制器进行测试

以上是我今天共享的听众、过滤器、拦截器的相关知识。 我建议你手动试试。

我知道纸上最终要有浅浅的感觉,这件事绝对要自己做。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。