博客
关于我
关于Java Web中Web.xml配置文件中的listener,filter,以及前端框架的interceptor
阅读量:796 次
发布时间:2023-03-28

本文共 1331 字,大约阅读时间需要 4 分钟。

listener

监听器在servlet应用中扮演着重要角色,主要用于监听servlet容器提供的八个标准接口。通过实现这些接口,我们可以在特定事件发生时执行自定义的业务逻辑。需要注意的是,自定义的监听器类会在tomcat启动时被加载,具体来说,当容器初始化时会调用类的初始化方法(如ServletContextListener的init方法),而当容器停止时会调用销毁方法(如ServletContextListener的destroy方法)。这一点对理解监听器的工作原理至关重要。

以在线用户统计为例,当我们需要统计当前在线人数时,通常会选择实现HttpSessionListener接口。在这种情况下,创建一个新的session会触发初始化方法(sessionCreated),而session的销毁会触发销毁方法(sessionDestroyed)。需要注意的是,与其他类型的监听器不同,HttpSessionListener的对象会在session创建时被创建,并在session销毁时被销毁。因此,需要仔细规划监听器的生命周期管理。

此外,需要注意的是,tomcat容器会在启动时加载所有实现了ServletContextListener接口的监听器,并在容器停止时销毁这些监听器对象。因此,在实际应用中,通常只会有一个自定义的ServletContextListener实例被管理。

filter

过滤器(Filter)是servlet应用中用来对请求进行过滤和处理的重要组成部分。它的工作流程通常是:当客户端发送一个请求到servlet容器时,过滤器会被动态地插入到请求处理链中,根据过滤器的配置,决定是否对该请求进行处理。过滤器可以在请求的处理过程中(如请求开始时)或响应的处理过程中(如响应返回时)执行自定义的业务逻辑。

常见的过滤器应用场景包括用户认证、权限校验、请求参数过滤等。例如,在用户登录时,过滤器可以验证用户的身份信息,确保请求来源合法。除此之外,过滤器还可以用来过滤请求参数,例如限制请求参数的大小、类型或允许的值范围。

需要注意的是,过滤器的执行顺序会影响最终的处理结果。通常情况下,过滤器的执行顺序是由servlet容器定义的,开发者需要根据实际需求合理配置过滤器的执行顺序。

intercepter

拦截器(Interceptor)在servlet应用中主要用于对用户请求进行拦截和处理,通常用于Web层面的业务逻辑处理。拦截器的工作流程是:当客户端发送一个请求到servlet容器时,拦截器会被动态地插入到请求处理链中,根据拦截器的配置,决定是否对该请求进行处理。拦截器可以在请求的处理过程中(如请求开始时)或响应的处理过程中(如响应返回时)执行自定义的业务逻辑。

需要注意的是,拦截器的具体工作流程和应用场景与过滤器有所不同。拦截器通常用于处理用户请求的具体业务逻辑,而不仅仅是过滤和校验。例如,在用户登录后,拦截器可以根据用户的权限水平决定对哪些资源进行访问。

此外,拦截器的执行顺序同样会影响最终的处理结果。通常情况下,拦截器的执行顺序是由servlet容器定义的,开发者需要根据实际需求合理配置拦截器的执行顺序。

转载地址:http://lchfk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现开方数(附完整源码)
查看>>
Objective-C实现异或加密(附完整源码)
查看>>
Objective-C实现异或密码算法(附完整源码)
查看>>
Objective-C实现异步编程(附完整源码)
查看>>
Objective-C实现弧度到度算法 (附完整源码)
查看>>
Objective-C实现循环移位(附完整源码)
查看>>
Objective-C实现循环链表(附完整源码)
查看>>
Objective-C实现循环队列算法(附完整源码)
查看>>
Objective-C实现循环队列链表算法(附完整源码)
查看>>
Objective-C实现快速傅立叶变换FFT算法(附完整源码)
查看>>
Objective-C实现快速傅里叶变换FFT(附完整源码)
查看>>
Objective-C实现快速排序(附完整源码)
查看>>
Objective-C实现快速排序(附完整源码)
查看>>
Objective-C实现快速排序算法(附完整源码)
查看>>
Objective-C实现恩尼格玛密码机算法(附完整源码)
查看>>
Objective-C实现感知哈希算法(附完整源码)
查看>>
Objective-C实现感知哈希算法(附完整源码)
查看>>
Objective-C实现截留雨水问题的动态编程方法算法(附完整源码)
查看>>
Objective-C实现截留雨水问题的蛮力方法的算法(附完整源码)
查看>>
Objective-C实现打印10000以内的完数(附完整源码)
查看>>