JavaWeb之Listener与Filter

Listener和Filter
Listener:监听器,监听某一个事件的发生状态的改变。其实就是接口回调
Web中监听器总共8个,分三种
监听三个作用域创建和销毁
ServletContextListener

在web.xml注册监听器

在ServletContext创建时执行初始化,在ServletContext销毁时执行销毁

SevletContext创建(初始化)

启动服务器的时候
ServletContext销毁

正常关闭服务器,从服务器移除项目
作用

初始化的时候完成自己想要的初始化工作
执行自定义的任务调度。执行某一个任务
ServletRquestListener

Request创建(执行初始化)

访问服务器上的任意资源都会创建,访问html、访问jsp、访问Servlet
Request销毁(执行销毁)

服务器对这次请求作出了响应
HttpSessionListener

Session创建(执行初始化)

Session销毁(超时30分钟,非正常关闭服务器)

作用

统计在线人数
监听三个作用域状态变更
可以监听在作用域中值添加、替换、移除的动作
HttpSessionAttributeListener
ServletRequestAttributeListener
ServletContextAttributeListener
监听httpSession里面存值的状态变更
这一类监听器不用注册
HttpSessionBindingListener

在JavaBean中继承,监听值被绑定(存在Session中)
HttpSessionActivationListener

在JavaBean中继承,监听Session

用于监听Session的值是钝化(序列化)还是活化(反序列化)

钝化(序列化):把内存中的数据存储到硬盘上;关闭服务器Session存储到硬盘
活化(反序列化):把硬盘中的数据读取到内存中;重启服务器后,取出Session值,活化Session,javaBean必须序列化
Session钝化活化存在的意义

Session中的值可能会很多,并且我们可能在很长一段时间不使用某些值,那么可以考虑把Session中的值存到硬盘上,等下一次使用的时候,在从硬盘上取出来

如何让Session在一定的时间内钝化

在tomcat里边conf/context.xml中配置(对所有运行在本服务器的项目生效)

在tomcat的conf/Catalina/localhost/context.xml中配置(对所有localhost:8080项目生效)

在自己web工程项目中的META-INF/context.xml中配置

//maxIdleSwap,多长时间不用就钝化,这里是一分钟
//directory钝化后文件目录

                                           <Context>
        <Manager                         className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="it315"/>
    </Manager>
      </Context>

Filter:过滤器
其实就是对客户端发出来的请求进行过滤。浏览器发出请求,然后服务器派Servlet处理,在中间就可以过滤,其实过滤器起到的是拦截的作用
作用
对一些敏感词汇进行过滤
统一设置编码等属性
自动登录
如何使用过滤器
继承Filter

在清单文件注册

在doFilter中执行chain.doFilter(request, response);//表示放行

路径匹配

全路径'/'开头
后缀名以* 开头后缀结束
dispatcher设置

REQUEST:只要是请求都拦截
FOWARD:只要是转发都拦截
ERROR:页面出错发生跳转
INCLUDE:包含页面的时候就拦截
过滤器生命周期
在服务器启动创建
在服务器关闭销毁
自动登录拦截
先判断Session,有效就放行,session无效取cookie,没有cookie放行,有cookie取出登录,存到session中,放行
BeanUtils包的使用

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 监听器(listener) 监听器简介 :监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个...
    奋斗的老王阅读 2,481评论 0 53
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 924评论 0 0
  • 一、 Listener监听器 Javaweb中的监听器是用于监听web常见对象HttpServletRequest...
    圣贤与无赖阅读 2,091评论 2 64
  • 初恋时,想念不敢说出口,羞羞答答的,两个在一起也客客气气的,那会或许也爱的朦朦胧胧,在一起半年有余,走到了热恋,想...
    世俗a阅读 122评论 0 0
  • 当重病来临,如何才有向死而生的勇气?不如防患于未然吧,听一听李教授的心得。 001.好睡眠的秘诀。 因人而异。专家...
    安心6178阅读 415评论 0 1