中间件,拦截器,过滤器有什么区别

区别:中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务,达到资源共享、功能共享的目的。拦截器主要完成请求参数的解析,将页面表单参数赋给值栈中相应属性。过滤器使用 FilterChain 调用链中的下一个过滤器。

中间件,拦截器,过滤器有什么区别-Worktile社区

中间件

中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。它并没有很严格的定义,但是普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。从这个意义上可以用一个等式来表示中间件:中间件=平台+通信,这也就限定了只有用于分布式系统中才能叫中间件,同时也把它与支撑软件和实用软件区分开来。

拦截器

拦截器(Interceptor),主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。

拦截器(Interceptor)是Struts2框架的核心功能之一,Struts 2是一个基于MVC设计模式的开源框架,主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。Struts2拦截器是一种可插拔策略,实现了面向切面的组件开发,当需要扩展功能时,只需要提供对应拦截器,并将它配置在Struts2容器中即可,如果不需要该功能时,也只需要在配置文件取消该拦截器的设置,整个过程不需要用户添加额外的代码。拦截器中更为重要的概念即拦截器栈(Interceptor Stack),拦截器栈就是Struts2中的拦截器按一定的顺序组成的一个线性链,页面发出请求,访问Action对象或方法时,栈中被设置好的拦截器就会根据堆栈的原理顺序的被调用。

过滤器

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的核心控制器,负责拦截所有用户请求。

延伸阅读:

中间件的局限

中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序提供了一个相对稳定的高层应用环境。然而,中间件服务也并非“使用广泛药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在client方和server方的功能分配。通常将表示服务放在client以方便使用显示设备,将数据服务放在server以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容易确定的。

文章标题:中间件,拦截器,过滤器有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38081

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

相关推荐

  • 走编程什么意思

    走编程通常表示1、采用编程方法解决问题,2、学习或从事编程工作。在讨论编程意义的过程中,一个关键点就是编程不仅仅是一种职业技能,而是一种思维训练和问题解决的方式。例如,在教育领域,让学生"走编程"不仅能教会他们编写代码,更能锻炼他们逻辑思考和解决复杂问题的能力。 编程作为解决问题…

    2024年4月27日
    700
  • 如何建立一个知识库

    建立知识库的步骤:一、明确知识库的目的和范围;二、选择适合的知识库工具;三、制定知识库管理规范和流程;四、收集和整理知识库内容;六、推广和使用知识库。在建立知识库之前,需要确定知识库的建立目的和覆盖范围。 一、明确知识库的目的和范围 在建立知识库之前,需要确定知识库的建立目的和覆盖范围。比如需要为团…

    2023年3月21日
    1.1K00
  • 数控设计编程什么专业

    机械设计制造及其自动化专业是最符合数控设计编程学习需求的专业之一。1、这一学科领域不仅覆盖了数控技术的基础知识,还涉及了计算机辅助设计(CAD)、计算机辅助制造(CAM)等先进制造技术,为学生提供了理论学习与实践应用相结合的全方位教育。特别是在数控编程方面,学生将学习如何使用专业软件进行图形设计、模…

    2024年4月27日
    900
  • 软件编程是做什么的

    软件编程主要负责开发程序和应用,解决特定问题或满足特定需求,具体涉及编写、测试、调试代码,并保持软件更新和优化。在讨论何为软件编程时,重要的一点是了解编程的本质——它是创造性工作的一种形式,要求开发者理解算法和数据结构,同时还需具备强大的逻辑思维能力。程序员通过编程语言将复杂问题分解为小的、可管理的…

    2024年4月27日
    500
  • 用什么编程软件好

    用什么编程软件好? 在选择编程软件时,1、功能性、2、用户界面友好、3、支持语言范围广泛是三大考虑因素。功能性指的是软件是否提供强大的代码编辑、调试、版本控制以及集成开发环境(IDE)特有的高级功能,如代码自动完成、语法高亮等,这直接关系到编程效率和学习的便利性。 一、功能性 功能性强大的编程软件可…

    2024年4月25日
    2000
  • 泛微协同商务系统oa

    标题:泛微协同商务系统OA的功能与应用全析 泛微协同商务系统OA是一套全面整合了企业内部协同管理需求的软件平台。该系统致力于提高企业工作效率、优化办公流程、并实现信息资料的集中管理。五大功能包括:1、文档管理、2、项目协作、3、流程审批、4、通讯录管理、5、移动办公。文档管理系统是泛微协同商务系统O…

    2024年1月15日
    26300
  • 灯具编程属于什么语言类型

    灯具编程通常采用C语言、Python和Java三种主要语言。其中,C语言因其接近硬件层面的操作能力,成为编程灯具时首选的语言。这使得开发者能够精确控制灯具的行为,从而实现高度定制的光效效果。C语言的这种能力尤其适用于嵌入式系统,如灯具控制模块,它们需要直接与硬件通信以控制灯具的开/关状态、亮度、光色…

    2024年4月27日
    700
  • 如何做好项目落地服务管理工作

    项目落地服务管理工作是确保项目从计划到实施、直到成功交付的关键环节。要做好这项工作,需要具备全面的项目管理知识体系、卓越的组织与沟通能力、强大的问题解决技能、以及灵活的应变能力。在这些核心要素中,特别要强调全面的项目管理知识体系的重要性。这包括了解项目管理的各个阶段,如启动、规划、执行、监控和收尾,…

    2024年4月11日
    7500
  • 什么是okr|OKR

    OKRs即“目标与关键结果”(Objectives and Key Results),代表一套设定与跟踪目标的流行框架,广泛用于企业管理和个人发展。该框架由两部分组成:1、目标(Objectives),反映了需要实现的具体且引人注目的目标;2、关键结果(Key Results),为衡量目标实现程度提…

    2024年1月17日
    20500
  • 如何把项目跟公司分开管理

    把项目和公司分开管理是企业运营中的一个重要战略决策,它可以提高企业资源的使用效率、优化财务管理、降低风险以及提升决策灵活性。要实现有效的分离,企业可以采用独立的财务体系、设置专门的项目管理团队、实行不同的运营策略、以及引入外部监督和评估机制。 在这些策略中,采用独立的财务体系尤为关键,因为它涉及到资…

    2024年4月10日
    7100

发表回复

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

400-800-1024

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

分享本页
返回顶部