5 listener
监听器
-
事件源:被监听的对象,三个域对象 request session servletContext
-
监听器:监听事件源对象 事件源对象的状态的变化都会触发监听器 ---- 6+2
-
注册监听器:将监听器与事件源进行绑定
-
响应行为:监听器监听到事件源的状态变化时 所涉及的功能代码 ---- 程序员编写代 码
-
应用场景
- GUI编程
- android手机开发
编写流程
//监听器实例
//1. 编写监听器实现类
public class pathContextListener implement ServletContextListener{
//初始化方法
public void contextIntialized(ServletContextEvent src){
String conextLocation=src.getServletContext().getInitParamter("contextLocation");
}
//销毁方法
...
}
//2. web.xml配置监听器类路劲
<listener>
<listener-class>
cn.pathContextListener
</listen-class>
</listener>
- web.xml配置监听器
<listener>
<listener-class>class路径</listener-class>
</listener>
- 编写监听器实现类
监听器接口
servlet context events | 监听器javax.servlet. |
---|---|
lifecyle | ServletContextListener |
changes to attributes | ServletContextAttributeListener |
Http session events | javax.servlet.http. |
--------------------- | ---------------------------- |
lifecyle | HttpSessionListener |
Changes to attributes | HttpSessionAttributeListener |
session migration | HtpSessionActivationListener (不需要web.xml配置) |
Object binding | HttpSessionBindingListener(不需要web.xml配置) |
Servlet request events | javax.servlet. |
-------------------------- | -------------------------- |
lifecycle | ServletRequestListener |
change to attributes | ServletRequestAttributeListener |
监听器三大域对象监听器
ServletContextListener
- 生命周期:服务器的启动创建与关闭销毁
- 重写的方法
- contextIntialized(ServletContextEvent sce)
- contextDestroyed(ServletContextEvent sce)
- 作用
- 初始化工作
- 加载初始化配置文件
- 任务调度
- 重写的方法
ServletSessionListener
- 生命周期 :创建与销毁
- 重写的方法
- sessionCreated(HttpSessionEvent se)
- sesionDestroyed(HttpSessionEvent se)
- 重写的方法
- HttpSessionBindingListener
- 即将要绑定到session中的对象状态:
- 绑定
- 解绑
- 钝化(session对象持久化)
- 活化(对象从磁盘恢复到session中)
- 重写方法
- valueBound(HttpSessionBindingEvent event):对象绑定触发
- valueUnbound(HttpSessionBindingEvent event):对象解绑触发
- 即将要绑定到session中的对象状态:
- HttpSessionActivationListener
- 可通过配置文件指定对象钝化时间
- 必须实现序列化接口
- 流程
- web-inf下创建xml文件
<Context> <Manager classsName="org.apache.catalina.session.PersistentManager" maxIdleSwap="1"//对象多久时间不用钝化 > <Strore className="org.apache.catalina.session.FileStore" directory="钝化对象保存位置"> </context>
- 重写方法
- sessionWillPassivate(httpSessionEvent se):对象被钝化
- sesionDidActivate(HttpSession se):对象活化
ServletRequestListener
- 生命周期:创建与销毁
- 重写的方法
- requestDestroyed(ServletRequestEvent sre)
- requestInitialized(ServletRequestEvent sre)
- 重写的方法
三大作用域属性变化(通用)
- 方法(以context为例)
- attributeAdded(ServletContextAttributeEvent scad)
- attributeRemoved(ServletContextAttributeEvent scab)
- attributeReplaced(ServletContextAttributeEvent)
电子邮件
- 邮件协议
- SMTP(简单邮件传输协议),端口25,发邮件协议
- POP3(邮局协议),端口110,收邮件协议