ServletListener对象学习笔记
2014-10-29 15:35
375 查看
JavaWeb学习笔记——监听器详解
知识概要:1.监听器下例子举例
2.Servlet规范中的监听器
3.
4.
1. 监听器下例子举例说明:
/* Frame:事件源。发生事件的对象 WindowListener:监听器。(对应着事件源的某些内容) WindowEvent:事件对象。封装事件源 */ public class FrameDemo { public static void main(String[] args) { Frame f = new Frame("我的小窗"); f.setSize(400, 300); f.addWindowListener(new WindowAdapter() {//注册具体的监听器 public void windowClosing(WindowEvent e) { Frame f1 = (Frame) e.getSource(); f1.dispose(); } }); f.setVisible(true); } } 例子二: Student package com.itheima.base; public class Student { private String name; private StudentListener listener; public Student(String name){ this.name = name; } public void eat(){ if(listener!=null){ listener.preEat(new StudentEvent(this)); } System.out.println(name+":开吃"); } public void study(){ if(listener!=null){ listener.preStudy(new StudentEvent(this)); } System.out.println(name+":开始学习"); } public String getName() { return name; } public void addStudentListener(StudentListener listener){ this.listener = listener; } } | |
StudentListener | StudentEvent |
package com.itheima.base; public interface StudentListener { void preEat(StudentEvent e); void preStudy(StudentEvent e); } | package com.itheima.base; public class StudentEvent { private Object source; public StudentEvent(Object source){ this.source = source; } public Object getSource(){ return source; } } |
studentDemo | |
public class StudentDemo { public static void main(String[] args) { Student s = new Student("张三"); s.addStudentListener(new StudentListener() { public void preStudy(StudentEvent e) { Student s1 = (Student)e.getSource(); System.out.println(s1.getName()+",我给你一个香吻,你努力学习"); } public void preEat(StudentEvent e) { Student s1 = (Student)e.getSource(); System.out.println(s1.getName()+",我给你一个湿吻,润一下喉咙,好好吃饭"); } }); s.study(); s.eat(); } 打印结果: 张三,我给你一个香吻,你努力学习 张三:开始学习 张三,我给你一个湿吻,润一下喉咙,好好吃饭 张三:开吃 |
2.Servlet规范中的监听器
a、监听ServletContext、HttpSession、ServletRequest对象的创建和销毁的监听器。ServletContextListener:两个方法
HttpSessionListener:两个方法
ServletRequestListener:两个方法
1.ServletContextListene监听器:
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; /* 在web.xml中进行监听器注册 <listener> <listener-class>com.itheima.listener.MyServletContextListener</listener-class> </listener> */ public class MyServletContextListener implements ServletContextListener { //ServletContext对象创建时就会指定该方法 //ServletContext对象创建时就执行,执行一次:特点 //应用场景:完成系统的初始化。 //Spring框架:就是利用监听器完成Spring容器的初始化的 public void contextInitialized(ServletContextEvent sce) { System.out.println("ServletContext实例化了"); } //ServletContext对象销毁时就会指定该方法 public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext销毁了"); } } |
import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class MyHttpSessionListener implements HttpSessionListener { //监听访问量 public void sessionCreated(HttpSessionEvent se) { System.out.println(se.getSession()+"创建了"); } public void sessionDestroyed(HttpSessionEvent se) { System.out.println(se.getSession()+"销毁了"); } } |
import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; public class MyServletRequestListener implements ServletRequestListener { //统计某个资源的访问次数 public void requestDestroyed(ServletRequestEvent sre) { } public void requestInitialized(ServletRequestEvent sre) { } } |
ServletContextAttributeListener,
HttpSessionAttributeListener,
ServletRequestAttributeListener
c、感知型监听器(2个):监听自己何时被帮到session上,何时解绑了;何时被钝化了,何时被活化了(序列化到某个存储设置中)。
注意:这种监听器不需要注册。某个javabean实现这些接口后就可以监听何时被绑定、解绑或被激活或钝化。
HttpSessionBindingListener:实现该接口的类,能检测自己何时被Httpsession绑定,和解绑
HttpSessionActivationListener:实现该接口的类(要求些javabean必须是实现了Serializable接口的),能监测自己何时随着HttpSession一起激活和钝化。
相关文章推荐
- [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期
- Servlet 知识详解(五)之 —— Listener对象 监听器 学习笔记
- ServletListener对象学习笔记
- java Web Servlet学习笔记-1 HttpServletQequest对象的学习
- 重温Servlet学习笔记--Cookie对象
- 【JavaEE学习笔记】Servlet_03_重定向,请求对象,请求域
- java Web Servlet学习笔记-1 HttpServletQequest对象的学习
- Apache Shiro学习笔记(七)Servlet3.0 Listener介绍
- JSP九大内置对象与Servlet学习笔记
- struts2学习笔记---获得HttpServletResponse或HttpServletRequest对象的几种方法
- JavaWeb学习笔记----Servlet的ServletConfig对象和ServletContext对象的使用
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
- 重温Servlet学习笔记--servletContext对象
- 20160324servlet学习笔记HttpServletRequest对象中文乱码解决方法
- 初学Servlet学习笔记之Listener
- 【JavaEE学习笔记】Servlet_02_创建Servlet方法,获取文件,响应对象
- Servlet学习笔记---三个域对象的使用时机
- JavaWeb学习笔记之Servlet九大内置对象
- Servlet学习笔记 -- day03 servlet三大域对象总结
- [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)