转-JavaWeb三大组件之Listener监听器
JavaWeb三大组件之Listener监听器
一、概述
1,它是一个接口,内容由我们来实现
2,它需要注册,例如注册在按钮上
3,监听器中的方法,会在特殊事件发生时被调用
二、JavaWeb中的监听器
1,事件源
Ø ServletContext
生命周期监听:ServletContextListener,它有两个方法,一个在出生时调用,一个在死亡时调用;
(1) void contextInitialized(ServletContextEvent sce):创建SErvletcontext时
(2) void contextDestroyed(ServletContextEvent sce):销毁Servletcontext时
属性监听:ServletContextAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,最后一个是在移除属性时调用。
(1) void attributeAdded(ServletContextAttributeEvent event):添加属性时;
(2) void attributeReplaced(ServletContextAttributeEvent event):替换属性时;
(3) void attributeRemoved(ServletContextAttributeEvent event):移除属性时;
Ø HttpSession
生命周期监听:HttpSessionListener,它有两个方法,一个在出生时调用,一个在死亡时调用;
(1) void sessionCreated(HttpSessionEvent se):创建session时
(2) void sessionDestroyed(HttpSessionEvent se):销毁session时
属性监听:HttpSessioniAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,最后一个是在移除属性时调用。
(1) void attributeAdded(HttpSessionBindingEvent event):添加属性时;
(2) void attributeReplaced(HttpSessionBindingEvent event):替换属性时
(3) void attributeRemoved(HttpSessionBindingEvent event):移除属性时
Ø ServletRequest
生命周期监听:ServletRequestListener,它有两个方法,一个在出生时调用,一个在死亡时调用;
(1) void requestInitialized(ServletRequestEvent sre):创建request时
(2) void requestDestroyed(ServletRequestEvent sre):销毁request时
属性监听:ServletRequestAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,最后一个是在移除属性时调用。
(1) void attributeAdded(ServletRequestAttributeEvent srae):添加属性时
(2) void attributeReplaced(ServletRequestAttributeEvent srae):替换属性时
(3) void attributeRemoved(ServletRequestAttributeEvent srae):移除属性时
2,JavaWeb中完成编写监听器
(1)写一个监听器类:要求必须去实现某个监听器接口
(2)注册,是在web.xml中配置来完成注册;
3,事件对象
Ø ServletContextEvent:ServletContext getServletContext()
Ø HttpSessionEvent:HttpSession getSession()
Ø ServletRequest:
(1) ServletContext getServletContext();
(2) ServletReques getServletRequest();
Ø ServletContextAttributeEvent:
(1) ServletContext getServletContext();
(2) String getName():获取属性名
(3) Object getValue():获取属性值
Ø HttpSessionBindingEvent:略
Ø ServletRequestAttributeEvent :略
4,感知监听
1,它用来添加到JavaBean上,而不是添加到三大域上
2,这两个监听器都不需要再web.xml中注册
HttpSessionBindingListener:添加到javabean上,javabean就知道自己是否添加到session中了。
HttpSessionActivationListener监听器与HttpSessionBindingListener监听器相似,都是感知型的监听器,例如让Person类实现了HttpSessionActivationListener监听器接口,并把Person对象添加到了session中后,当Tomcat钝化session时,同时也会钝化session中的Person对象,这时Person对象就会感知到自己被钝化了,其实就是调用Person对象的sessionWillPassivate()方法。当用户再次使用session时,Tomcat会活化session,这时Person会感知到自己被活化,其实就是调用Person对象的sessionDidActivate()方法。
---------------------
作者:职业炮灰
来源:CSDN
原文:https://blog.csdn.net/king_cannon_fodder/article/details/79894304
版权声明:本文为博主原创文章,转载请附上博文链接!
转-JavaWeb三大组件之Listener监听器的更多相关文章
- Javaweb三大组件-过滤器、监听器
1. 过滤器 [filter] 作用: 对单个获取多个servlet起到增强[advice]的作用. 用于在所有的servlet执行前,做一些预处理.例如:做编码处理, 访问量统计[servletCo ...
- JavaWeb三大组件
一.JavaWeb三大组件 Servlet,Listener,Filter.它们在JavaWeb开发中分别提供不同的功能. JavaWeb三大组件都必须在Web.xml中配置 二.三大组件 1.Ser ...
- JavaWeb三大组件(Servlet、Filter、Listener)
JavaWeb三大组件指的是:Servlet.Filter.Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet.Filter,比 ...
- JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)
JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下) Reference
- JavaWeb三大组件—过滤器filter
JavaWeb三大组件 1. 都需要在web.xml中进行配置ServletListener(2个感知监听器不需要配置)Filter 2. 过滤器 它会在一组资源(jsp.servlet..css.. ...
- 学习笔记_过滤器概述(过滤器JavaWeb三大组件之一)
过滤器Filter Filter和Lister是Servlet规范里的两个高级特性.不同于Servlet,它们不用于处理客户端请求,只用于对request.response进行修改或者对context ...
- Filter过滤器-JavaWeb三大组件之一
Servlet.Filter.Listener是JavaWeb的三大组件,给Web开发提供了很大的便利. 什么是Filter? Filter,过滤器.类似与生活中的净水器.空气净化器. JavaWeb ...
- JavaWeb三大组件之一Filter知识总结
[1] Filter简介 > Filter翻译为中文是过滤器的意思. > Filter是JavaWeb的三大web组件之一Servlet.Filter.Listener ...
- JavaWeb(六)Listener监听器
监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. Servlet监听器 在Se ...
随机推荐
- Linux记录-shell获取hdfs表查询mysql
#!/bin/sh hdfs dfs -ls /user/hive/warehouse | awk '{print $8}' | awk -F "/" '{print $5}' & ...
- 搭建vscode+vue环境
转自:https://blog.csdn.net/mao834099514/article/details/79138484 一.安装vue.js 1.简介 Vue.js(读音 /vjuː/, 类似于 ...
- layui打印html页面转成pdf
<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8&q ...
- jenkins笔记
java -jar jenkins.war -httpPort=9090 以9090端口启动jekins的web应用(内置jetty)
- nginx接入let's encrypt
按以下步骤: 一.放开443端口 我的是云服务器,默认没开放443端口,需要先在控制台放开 二.使用let’s encrypt 生成证书 执行以下命令: git clone https://githu ...
- nativefier - 快速把任意网页生成桌面应用程序
使用前端技术开发桌面应用的技术已经相当成熟了,像早先的 NW.js,如今很火的 Electron 等,都可以轻松实现.今天给大家分享的 nativefier 就是基于 Electron 封装的,可以帮 ...
- mybatis-configxml样板
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC & ...
- PHP调用API接口实现天气查询功能
天气预报查询接口API,在这里我使用的是国家气象局天气预报接口 使用较多的还有:新浪天气预报接口.百度天气预报接口.google天气接口.Yahoo天气接口等等. 1.查询方式 根据地名查询各城市天气 ...
- ubuntu终端命令启动matlab方法
让所有用户都有权限使用matlab,在终端输入 sudo gedit /etc/profile 在后行写 export MATLABPATH=/home/ubuntu/MATLAB/R2016b:$M ...
- flex中使用white-space
在微信小程序开发中,view设置为flex布局,但是flex的flex-wrap属性不起作用,如果起作用的话,默认值即no-wrap不换行.如果要测试view-scroll并且scroll-x 就没法 ...