四个概念详细分析servlet、filter、listener、interceptor的区别与联系?

GD32模拟IIC读写DVC1124 GD32模拟IIC读写集澈AFE芯片DVC1124 阅读详情

 下面从几个方面阐述一下题目中四个概念的区别与联系:

         《1》、概念

         《2》、生命周期

         《3》、职责

         《4》、执行过程

        

         一、概念:

            1、servlet:servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。

         2、filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。

         3、listener:监听器,从字面上可以看出listener主要用来监听只用。通过listener可以监听web服务器中某一个执行动作,并根据其要求作出相应的响应。通俗的语言说就是在application,session,request三个对象创建消亡或者往其中添加修改删除属性时自动执行代码的功能组件。

         4、interceptor:是在面向切面编程的,就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法,比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

         5、servlet、filter、listener是配置到web.xml中,interceptor不配置到web.xml中,struts的拦截器配置到struts.xml中。spring的拦截器配置到spring.xml中。 

        二、生命周期:

        1、servlet:servlet的生命周期始于它被装入web服务器的内存时,并在web服务器终止或重新装入servlet时结束。servlet一旦                              被装入web服务器,一般不会从web服务器内存中删除,直至web服务器关闭或重新结束。
        (1)、装入:启动服务器时加载Servlet的实例; 
        (2)、初始化:web服务器启动时或web服务器接收到请求时,或者两者之间的某个时刻启动。初始化工作有init()方法负责                   执行完成; 
        (3)、调用:从第一次到以后的多次访问,都是只调用doGet()或doPost()方法; 
        (4)、销毁:停止服务器时调用destroy()方法,销毁实例。 

        

        2、filter:(一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy(),空实现也行) 
         (1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例; 
         (2)、每一次请求时都只调用方法doFilter()进行处理; 
         (3)、停止服务器时调用destroy()方法,销毁实例。

       3、listener:类似于servlet和filter

           web.xml 的加载顺序是:context- param -> listener -> filter -> servlet 

      4、interceptor:以struts的拦截器为例,加载了struts.xml以后,初始化相应拦截器。当action请求来时调用intercept方法,              服务器停止销毁interceptor。

       三、职责

       1、servlet:

            1>.创建并返回一个包含基于客户请求性质的动态内容的完整的html页面;
            2>.创建可嵌入到现有的html页面中的一部分html页面(html片段);
            3>.读取客户端发来的隐藏数据;
            4>.读取客户端发来的显示数据;
            5>.与其他服务器资源(包括数据库和java的应用程序)进行通信;
            6>.通过状态代码和响应头向客户端发送隐藏数据;

       2、filter:

            1>.filter能够在一个请求到达servlet之前预处理用户请求,也可以在离开servlet时处理http响应:
            2>.在执行servlet之前,首先执行filter程序,并为之做一些预处理工作;
            3>.根据程序需要修改请求和响应;
            4>.在servlet被调用之后截获servlet的执行;

         3、listener:职责如概念。

          servlet2.4规范中提供了8个listener接口,可以将其分为三类,分别如下:
         第一类:与servletContext有关的listner接口。包括:ServletContextListener、ServletContextAttributeListener
         第二类:与HttpSession有关的Listner接口。包括:HttpSessionListner、HttpSessionAttributeListener、                                                        HttpSessionBindingListener、HttpSessionActivationListener;
         第三类:与ServletRequest有关的Listener接口,包括:ServletRequestListner、ServletRequestAttributeListener

        4、interceptor:与过滤器十分相似,通过层层拦截,处理用户的请求和响应。


        备注:web.xml 的加载顺序是:context-param -> listener -> filter -> servlet 。了解了这几个概念的区别以后,不难理论这个加载顺序了。


       四、几个区别:

           1,servlet 流程是短的,url传来之后,就对其进行处理,之后返回或转向到某一自己指定的页面。它主要用来在 业务处           理之前进行控制.
        2,filter 流程是线性的, url传来之后,检查之后,可保持原来的流程继续向下执行,被下一个filter, servlet接收             等,而servlet 处理之后,不会继续向下传递。filter功能可用来保持流程继续按照原来的方式进行下去,或者主导流           程,而servlet的功能主要用来主导流程。
          filter可用来进行字符编码的过滤,检测用户是否登陆的过滤,禁止页面缓存等
        3, servlet,filter都是针对url之类的,而listener是针对对象的操作的,如session的创建,session.setAttribute的发            生,在这样的事件发生时做一些事情。
           可用来进行:Spring整合Struts,为Struts的action注入属性,web应用定时任务的实现,在线人数的统计等 
        4,interceptor 拦截器,类似于filter,不过在struts.xml中配置,不是在web.xml,并且不是针对URL的,而是针对                  action,当页面提交action时,进行过滤操作,相当于struts1.x提供的plug-in机制,可以看作,前者是struts1.x自带            的filter,而interceptor 是struts2 提供的filter.
        与filter不同点:( 1 ) 不在web.xml中配置,而是在struts.xml中完成配置,与action在一起;
                        ( 2 ) 可由action自己指定用哪个interceptor 来在接收之前做事
   ;

        5,struts2中的过滤器和拦截器的区别与联系:

      (1)、拦截器是基于java反射机制的,而过滤器是基于函数回调的。
      (2)、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。
      (3)、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
      (4)、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
      (5)、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

        

        五、执行流程图:

         1、servlet:

           

          2、filter:

          

               

             

           3、listener:

             

           4、interceptor:

            

机器翻译:一文掌握离线翻译库 Argos Translate 的详细使用 Argos Translate是一个开源的离线翻译库,支持多语言互译。它通过独立的翻译包(.argosmodel文件)实现翻译功能,每个包对应特定语言对的翻译任务。安装简单,只需pip安装argostranslate库,并通过命令行或Python API管理翻译包。支持批量处理和长期运行优化性能。对于不支持的语种,可采用桥接翻译或自行训练模型。该库提供CLI工具和Python API,适合集成到各种应用中,还可用于批量文件翻译。主要局限包括缺乏上下文理解、专业领域翻译不精准等。 阅读详情

相关推荐

deepseek本地部署及应用部署指南

如果你找到的日志是[send] via NET/IB/0,则表示网络通信是通过IB网络的,但是没有开启GDRDMA技术,则会有大致5%的性能损耗(网传,未实测)。新增的环境变量配置,主要用于启用IB网络通信,而非使用以太网进行通信,详细的每一个参数的具体含义,可以在英伟达NCCL的官方网站上找到说明。下一步,我会对已经完成部署的模型进行压测,来探索系统的性能极限在哪里,以及如何在生产环境中何如进行进一步的性能优化,期待你的关注。

weixin_39797121的博客 2625

servlet/filter/listener/interceptor区别与联系

servlet/filter/listener/interceptor区别与联系 一、概念: 1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 We

独孤萧孑 791

Unity 工具 之 Natcorder 插件实现录频、拍照jpg、生成Gif动图功能(适用移动端)

Unity 工具 之 插件实现录频、拍照jpg、生成Gif动图功能(适用移动端) 目录 Unity 工具 之 插件实现录频、拍照jpg、生成Gif动图功能(适用移动端) 一、简单介绍 二、插件导入使用 三、几个 Demo 演示效果 四、关键代码 五、下载地址 一、简单介绍 Unity 工具类,自己整理的一些游戏开发可能用到的模块,单独独立使用,方便游戏开发。 本节介绍,使用Unity插件,进行屏幕录制,生成图片,gif 动图,以及mp4文件等;能录制场景,也能录制摄像头,多功能录

仙魁XAN 7560

附录 3 Servlet、Filter、Listener 对比

附录 3 Servlet、Filter、Listener 对比 目录 附录 3 Servlet、Filter、Listener 对比 1. Servlet 2.Filter 3.Listener 1. Servlet Servlet 是运行与服务器端的 Java 应用程序,具有独立于平台和协议的特性,可以 动态生成 Web 页面。 ...

JavaDarren的博客 447

iOS开发者必备:从越狱设备里提取IPA的三种方法(含Filza、iTools实战)

本文详细介绍了iOS开发者从越狱设备提取IPA文件的三种实用方法,包括使用Filza文件管理器、AFC2配合桌面工具以及命令行高级技术。内容涵盖环境准备、操作步骤和技术原理,帮助开发者高效获取应用包文件,适用于逆向工程、测试分析等场景。

weixin_28717969的博客 824

OMI数据获取与可视化:从下载到大气污染分析

本文详细介绍了如何获取与处理OMI卫星数据,以进行大气污染分析。内容涵盖从NASA GES DISC官方源下载对流层NO2数据、使用MATLAB或Python进行月均数据处理与网格化,到利用m_map或cartopy工具进行专业可视化的完整流程。重点解析了数据下载技巧、NetCDF格式处理、地图投影与填色方法,并探讨了时间序列分析与动态可视化等深度应用,为环境研究者提供了一套从数据到洞察的实用指南。

weixin_29210759的博客 269

Servlet、Filter、Listener、Interceptor区别

1、角色说明 Servlet、Filter、Listener这三种角色是在JSP/Servlet规范中定义的,Interceptor这个角色不在这个规范中,Interceptor是某些MVC框架中的角色,比如Struts2中,Interceptor是用来拦截Action中的方法的调用,在被拦截的Action方法被执行前,先执行响应的拦截器中的方法。servlet、filter、listener是

cpazstido2018的博客 484

使用MATLAB进行灰色预测 GM(1,1)

使用MATLAB进行灰色预测 GM(1,1)

Hou_____的博客 1000

java中servlet/filter/listener/interceptor区别与联系

Filter和Interceptor的区别 一、filter基于filter接口中的doFilter回调函数,interceptor则基于Java本身的反射机制; 二、filter是依赖于servlet容器的,没有servlet容器就无法回调doFilter方法,而interceptor与servlet无关; 三、filter的过滤范围比interceptor大,filter除了过滤请求外通过通配符可以保护页面、图片、文件等,而interceptor只能过滤请求,只对action起作用,在action

qq_51700372的博客 772

JavaSwing_4.2: JDialog、JOptionPane(对话框)

JDialog,对话框。使用 JDialog 类可以创建自定义有的对话框,或者调用 JOptionPane 中的多个静态方法快速创建各种标准的对话框。JOptionPane是 JavaSwing 内部已实现好的,以静态方法的形式提供调用,能够快速方便的弹出要求用户提供值或向其发出通知的标准对话框。

谢TS的博客 7万+

[Unity开发] [PICO]避坑指南:PICO商店上传APP时PXR Platform APPID设定详解

PICO开发者上传Unity应用时常见的"APPID不符"问题,主要源于混淆了开发者后台两个不同位置的APPID。

每日出拳老爷子的博客 557

一文快速回顾 Servlet、Filter、Listener

前置知识Web 服务器:可以指硬件上的,也可以指软件上的。从硬件的角度来说, Web 服务器指的就是一台存储了网络服务软件的计算机;从软件的角度来说, Web 服务器指的是一种软件,比如 Tomcat。Servlet 容器:目前主流的 Servlet 容器软件包括 Tomcat、Jetty、Jboss 等。Web 服务器 ≠ Servlet 容器,Tomcat 是一种 Web 服务器,同时它还是一个 Servlet 容器。

god23bin的博客之地 557

Ceres&OpenCV 单目相机标定(论文复现)

Ceres&OpenCV 单目相机标定(论文复现)

dayuhaitang1的博客 371

四个概念详细分析servlet、filter、listener、interceptor的区别与联系

 下面从几个方面阐述一下题目中四个概念的区别与联系:         《1》、概念         《2》、生命周期         《3》、职责         《4》、执行过程                 一、概念:            1、servlet:servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服...

Alex的博客 448

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

探析Filter、Interceptor、Listener、Servlet

Filter:过滤器。只希望符合预期的请求进来Filter在 Servlet 容器里面,但在 Servlet 执行前(可以理解成 Servlet 的前置和后置处理器)Interceptor:拦截器。干涉预期的请求Interceptor在Spring 层面,拦截 Controller 调用Listener:监听器。监听这些请求具体做了什么。不属于哪个层面,被动监听事件,不改变请求链监听器类型有很多,一大类是Servlet监听器,一大类是Spring Boot监听器。:监听应用启动和销毁。

aiya123ax的博客 846

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

web.xml中servlet ,filter ,listener ,interceptor的作用与区别

一、概念:          1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。S

netdevgirl的专栏 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

servlet、filter、listener、interceptor

servletservlet??????????java????,?????????????,?????????web??,????????????????????Servlet ??????????????????,???? Web ??? 1) ????????????; 2) ??????????? Servlet; 3) Servlet ???????????????????????,??

wwhhff11 2724

servlet、filter、listener、interceptor之间的区别和联系

写这篇博客主要是为了巩固一下自己的基础,工作了之后一直接触的都是框架上的使用以及业务上的了解,逐渐的把一共重要的基础知识点给遗漏了,在这里就先整理对比一下servlet、filter、listener、interceptor之间的区别和联系。

深存少年梦 1062

一文搞懂 Filter、Listener、Interceptor 的区别与使用场景

属于Servlet 层作用范围广与 Spring无关无法获取 Controller 方法或注解信息不参与请求拦截关注生命周期常用于系统级初始化属于Spring MVC只作用于 Controller可获取方法、注解、参数适合细粒度权限控制对比项FilterListener所属规范ServletServletSpring MVC是否拦截请求是否是作用范围所有请求生命周期Controller可获取方法信息否否是执行顺序最外层无Filter 之后常见用途。

2401_88153531的博客 680

总结下Servlet,Filter,Listener,Interceptor

servlet是一种运行服务器端的java应用程序,它工作在客户端请求与服务器响应的中间层。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。 filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改对某一的响应。 Servlet中的过滤器Filter...

qq_41875147的博客 405

Servlet,Filter,Listener,Interceptor的作用和区别

一、概念: 1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为: 1) 客户端发送请求至服务器端; 2) 服务器将请求信息发送至 Servlet; 3) Servlet 生成响应内容并

hapier的博客 355

Servlet、Listener、Filter、Interceptor

杂记3 一、Servlet、Listener、Filter、Interceptor 1、tomcat 和 Servlet 关系   Java的Web应用是基于Servlet规范运转的,而Servlet规范的核心接口即是Servlet接口,它是所有Servlet类必须实现的接口,描述了Servlet 生命周期为从创建直到销毁的整个过程。   有的人往往以为就是servlet直接处理客户端的http请...

myt0929的专栏 394
上一篇: Notepad++安装NppExec插件编译运行Java
下一篇: 浅析JSR303 验证作用、使用及使用场景、spring mvc下使用JSR303
nigel-wang
博客等级 码龄10年 6粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值