基于java servlet过滤器和监听器(详解)

 更新时间:2017年10月25日 08:28:11   作者:Einsam  
下面小编就为大家带来一篇基于java servlet过滤器和监听器(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1 过滤器

1.过滤器是什么?

servlet规范当中定义的一种特殊的组件,用于拦截容器的调用.

注:容器收到请求之后,如果有过滤器,会先调用过滤器,然后在调用servlet.

2.如何写一个过滤器?

1.写一个java类,实现Filter接口;

2.在接口方法中实现拦截方法;

3.配置过滤器(web.xml);

3.配置初始化参数

1.配置初始化参数.(init-param)

2.通过filterconfig提供的getinitparamenter方法读取初始化的值.

4.优先级:

当有多个过滤器都满足拦截要求,则容器依据<filter-mapping>配置的先后顺序执行.

2 监听器

1.什么是监听器?

servlet规范当中定义的一种特殊的属性,用于监听容器产生的事件的.

注:有两大类事件

I) 声明周期相关的事件:

指得是,当容器创建或者销毁了request,session,servlet上下文对象时,产生的事件.

II) 绑定数据相关的事件:

指的是,当调用了request,session,servlet上下文的setattribute,removeAttrbute时产生的事件.

1.如何写监听器?

1.写一个java类实现监听器接口.

注:依据监听的事件类型选择相应的接口,例如:要监听session创建或者销毁对应的事件,需要实现httpsessionlistener接口

2.在接口方法中,实现监听处理逻辑;

3.配置监听器(web.xml).

2.Serlvet上下文

1.什么是servlet上下文?

容器启动以后,会为每一个web应用创建一个唯一符合servletcontext接口的对象,该对象就是servlet上下文.

2.特点:

I) 唯一性:一个web应用对应一个servlet上下文.

II) 持久性:只要服务器不关闭,应用没有被卸载,则上下文就会一直在.

1.如何获得servlet上下文?

GenericServlet,ServletConfig,FilterConfig,HttpSession都提供了一个方法(getServletContext)

2.上下文的作用

I) 绑定数据

setattribute,getattribute,removeattribute

注:从生存的时间长度比较:request<session<上下文

在满足使用条件的情况下,优先使用声明周期短的.

II) 读取全局的初始化参数.

以上这篇基于java servlet过滤器和监听器(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot如何整合SpringDataJPA

    SpringBoot如何整合SpringDataJPA

    这篇文章主要介绍了SpringBoot整合SpringDataJPA代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java调用echarts提供的地图压缩方法来压缩地图

    Java调用echarts提供的地图压缩方法来压缩地图

    今天小编就为大家分享一篇关于Java调用echarts提供的地图压缩方法来压缩地图,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Java异常继承结构解析_动力节点Java学院整理

    Java异常继承结构解析_动力节点Java学院整理

    这篇文章主要介绍了Java异常继承结构解析的相关知识,需要的朋友可以参考下
    2017-04-04
  • 详解Java中的日期类

    详解Java中的日期类

    这篇文章主要介绍了Java中的日期类的相关资料,帮助大家更好的利用Java处理时间,感兴趣的朋友可以了解下
    2020-10-10
  • SpringBoot整合MyBatis实现乐观锁和悲观锁的示例

    SpringBoot整合MyBatis实现乐观锁和悲观锁的示例

    这篇文章主要介绍了SpringBoot整合MyBatis实现乐观锁和悲观锁的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Mapstruct对象插入数据库某个字段总是为空的bug详解

    Mapstruct对象插入数据库某个字段总是为空的bug详解

    这篇文章主要为大家介绍了在一次需求开发Mapstruct中对象插入数据库某个字段总是为空的bug问题详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • java字符串拼接与性能分析详解

    java字符串拼接与性能分析详解

    在JAVA中拼接两个字符串的最简便的方式就是使用操作符”+”。如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在循环中来”+”多个串的话,性能将指数倍的下降,下面我们分析一下JAVA字符串拼接的性能
    2014-01-01
  • springboot项目中全局设置用UTC+8

    springboot项目中全局设置用UTC+8

    本文主要介绍了springboot项目中全局设置用UTC+8,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • spring schedule实现动态配置执行时间

    spring schedule实现动态配置执行时间

    这篇文章主要介绍了spring schedule实现动态配置执行时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 浅谈Java中Lock和Synchronized的区别

    浅谈Java中Lock和Synchronized的区别

    这篇文章主要介绍了Java中Lock和Synchronized的区别,Lock和Synchronized都是java中去用来解决线程安全问题的一个工具,但是具体有什么区别呢?下面我们一起进入文章了解具体详细内容吧,需要的朋友可以参考一下
    2022-04-04

最新评论