Listener 与 Filter 的区别是什么

Listener 与 Filter 的区别是:Filter是过滤器,过滤一些你不想要的东西,Listener是Servlet的监听器,可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作。listener是监听器,通常都是监听并加载一些插件用的,比如spring。log4j等。

Listener 与 Filter 的区别是什么-Worktile社区

Filter

Filter是过滤器,过滤一些你不想要的东西,Listener是Servlet的监听器,可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作。

Filter可以实现对请求的过滤和重定向等,也就是说可以操作request和response,session等对象,listner只能监听到以上对象的属性的修改。

Filter 技术是servlet 2.3 新增加的功能。servlet2.3是sun公司于2000年10月发布的,它的开发者包括许多个人和公司团体,充分体现了sun公司所倡导的代码开放性原则。在众多参与者的共同努力下,servlet2.3比以往功能都强大了许多,而且性能也有了大幅提高。

FilterChain 是 servlet 容器为开发人员提供的对象,它提供了对某一资源的已过滤请求调用链的视图。

过滤器使用 FilterChain 调用链中的下一个过滤器,如果调用的过滤器是链中的最后一个过滤器,则调用链末尾的资源。只要多个Filter对同一个资源进行拦截就可以形成Filter链,由<filter-mapping>来确定。Interceptor是struts的核心控制器,负责拦截所有用户请求。

Listener

listener是监听器,通常都是监听并加载一些插件用的,比如spring。log4j等。

按照监听对象的划分,可以分为三种:

ServletContext监控:对应监控application内置对象的创建跟销毁.

当web容器开启时,执行contextInitialized方法;当容器关闭或者重启时,执行contextDestroyed方法.实现方式:直接实现ServletContextListener接口。

HttpSession监控:对应监控session内置对象的创建和销毁。

当打开一个新的页面时,开启一个session会话,执行sessionCreated方法;当页面关闭session过期时,或者容器关闭销毁时,执行sessionDestroyed方法实现方式:直接实现HttpSessionListener接口。

ServletRequest监控:对应监控request内置对象的创建和销毁。

当访问某个页面时,出发一个request请求,执行requestInitialized方法;当页面关闭时,执行requestDestroyed方法。实现方式,直接实现ServletRequestListener接口。

延伸阅读:

什么是Java Web?

Java Web,是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP、第三方框架等等。Java技术对Web领域的发展注入了强大的动力。

Internet上供外界访问的Web资源分为:静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。静态web资源开发技术:HTML、CSS。动态web资源开发技术:JavaScript、JSP/Servlet、ASP、PHP等。在Java中,动态web资源开发技术统称为Java Web。

文章标题:Listener 与 Filter 的区别是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38035

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月13日 下午10:42
下一篇 2023年2月13日 下午10:44

相关推荐

  • mysql常用命令

    MySQL是一款流行的开源关系型数据库管理系统,它支持标准的SQL(结构化查询语言)。MySQL的常用命令可以分为:数据定义语言(DDL),包括创建、修改、删除数据库和表等;数据操作语言(DML),包括插入、更新、删除数据等;数据查询语言(DQL),包括查询数据等。这些命令可以帮助用户有效管理和操作…

    2023年5月15日
    44400
  • mac上用什么去连接公司的oracle数据库

    可以用以下工具连接:一、SQL Developer;二、Toad for Oracle;三、SQL*Plus。SQL Developer是Oracle官方推出的数据库管理和开发工具,可以免费下载使用。连接步骤是先下载并安装SQL Developer。打开SQL Developer,点击“新建连接”按…

    2023年5月30日
    1.1K00
  • vscode为什么扩展失败

    VSCode扩展失败的原因可能包括网络问题、软件兼容性、权限设置不当、扩展冲突,以及扩展本身的缺陷。具体而言,最常见的扩展失败原因是因为网络连接问题。VSCode扩展通常需要从Microsoft的官方市场下载,如果你的网络连接不稳定或者无法访问这些服务器,就会导致扩展安装失败。同时,一些国家和地区可…

    2024年4月3日
    17300
  • 职能部和项目部如何管理

    职能部门和项目部在管理中扮演着至关重要的角色,主要通过以下几种方式实现有效管理:建立明确的职责分工、实行有效的沟通机制、设置科学的评估标准、提供充分的资源支持、采用灵活的管理方法。在这五个核心策略中,建立明确的职责分工尤其关键。职能部门和项目部明确职责分工能够确保每个部门、每位成员都清楚自己的工作范…

    2024年4月10日
    5900
  • 办公oa有什么用

    办公oa的作用:1、建立内部的通信平台;2、建立信息发布的平台;3、实现工作流程的自动化;4、实现文档管理的自动化;5、辅助办公;6、信息集成;7、实现分布式办公。建立内部的通信平台,使组织内部的通信和信息交流快捷通畅。 1、建立内部的通信平台。 建立组织内部的邮件系统,使组织内部的通信和信息交流快…

    2023年4月20日
    34000
  • 如何做好项目尾工管理工作

    一、确保项目尾工的质量 为了确保项目尾工的质量,每个细节都必须经过严格的质量检查和测试。各种实验室和现场测试都应该完整不缺,并且所有材料以及安装过程必须遵守施工图纸和规范要求。 详尽的质量检查 在项目尾工管理中,进行详尽的质量检查是十分关键的。这涉及到每个工序的检验、记录、和问题的闭环处理。确保每项…

    2024年4月11日
    6800
  • Adobe系列的PSAIPRAE这些软件是用什么语言编写的

    Adobe系列的PSAIPRAE这些软件是用C++写的,大多数是用Visual C++。C++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生。C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。 一、Adobe系列的PS…

    2023年4月7日
    1.2K00
  • 人工智能在教育领域的应用有哪些

    摘要:人工智能在教育领域的融合与应用正在转变传统教学方式和学习经验。主体答案是:人工智能广泛应用于个性化学习、自动评估、智能助教和智能内容创制等多个方面。AI通过1、搭建个性化学习平台;2、实现智能评估和反馈;3、提供语音识别和自然语言处理技术加强交互;4、辅助课程设计与内容制作,来促进课堂教学和学…

    2023年11月24日
    90200
  • 如何评估云原生应用的性能

    在评估云原生应用性能的过程中,我们关注的核心指标包括可扩展性、资源利用率、弹性、延迟、吞吐量。这些指标是评估云原生应用性能的关键,深入了解可以确保应用可靠、高效地运行在云计算环境中。可扩展性决定了应用适应不同负载变化的能力;资源利用率反映了计算资源分配和消耗的效率;弹性描述了系统对突发事件的恢复能力…

    2023年11月23日
    31600
  • 什么是去中心化devops

    ### 摘要 去中心化DevOps代表了一种新兴的开发运维模式,旨在通过分布式的技术实践,增强团队自治性、提高效率与创新力。关键要素包括1、分布式团队的自主管理;2、基于微服务的技术架构;3、依托于区块链技术的数据和流程透明化。尤其是在微服务技术架构下,每个服务都设计为独立的、可在不同环境中部署和扩…

    2024年3月26日
    6300

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部