ServletListener对象学习笔记
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销毁了"); } } |
2.HttpSessionListener:主要可以用来检测网站的访问次数
|
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()+"销毁了"); } } |
3.ServletRequestListener:两个方法
|
import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; public class MyServletRequestListener implements ServletRequestListener { //统计某个资源的访问次数 public void requestDestroyed(ServletRequestEvent sre) { } public void requestInitialized(ServletRequestEvent sre) { } } |
b、三个类型对象域属性中增、删、改的监听器(3个)
ServletContextAttributeListener,
HttpSessionAttributeListener,
ServletRequestAttributeListener
c、感知型监听器(2个):监听自己何时被帮到session上,何时解绑了;何时被钝化了,何时被活化了(序列化到某个存储设置中)。
注意:这种监听器不需要注册。某个javabean实现这些接口后就可以监听何时被绑定、解绑或被激活或钝化。
HttpSessionBindingListener:实现该接口的类,能检测自己何时被Httpsession绑定,和解绑
HttpSessionActivationListener:实现该接口的类(要求些javabean必须是实现了Serializable接口的),能监测自己何时随着HttpSession一起激活和钝化。
ServletListener对象学习笔记的更多相关文章
- javaScript 对象学习笔记
javaScript 对象学习笔记 关于对象,这对我们软件工程到学生来说是不陌生的. 因为这个内容是在过年学到,事儿多,断断续续,总感觉有一丝不顺畅,但总结还是要写一下的 JavaScript 对象 ...
- ASP.NET本质论第二章应用程序对象学习笔记1
1.请求的处理参数—上下文对象HttpContext 1) 针对每一次请求,ASP.NET将创建一个处理这次请求所使用的HttpContext对象实例,这个对象实例将用来在ASP.NET服务器的处理过 ...
- JavaScript 对象 之继承对象 学习笔记
假设,我们有个这样的需求: 两个种族,每个种族都有 名字.血量(默认200).行为(行为有 跳跃.移动速度 这些属性)等共有属性. 人族能量值比兽人多10%,兽人血量比人族多10%. 职业有战士和法师 ...
- JavaScript中Date(日期对象),Math对象--学习笔记
Date对象 1.什么是Date对象? 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 语法:var Udate=new Date(); 注:初始值为当前时间(当前电脑系统 ...
- javaScript对象学习笔记(一)
一.什么是对象 对象: JavaScript的一种基本数据类型 对象是属性的无序集合,每个属性都是一个名/值对 JavaScript中的事物都是对象:字符串.数值.数组.函数... JavaScrip ...
- java——对象学习笔记
1.面向对象(OOP)的三大特性 对象的行为(behavior):可以对对象施加哪些操作,或者可以对对象施加哪些方法. 对象的状态(state):当施加那些方法后,对象如何响应. 对象标识(ident ...
- python_类与对象学习笔记
class Phone: #手机属性===>类属性 # color='black' # price=4500 # brand='oppo' # size='5.5' #参数化-魔法方法--初始化 ...
- OpenGL学习笔记3——缓冲区对象
在GL中特别提出了缓冲区对象这一概念,是针对提高绘图效率的一个手段.由于GL的架构是基于客户——服务器模型建立的,因此默认所有的绘图数据均是存储在本地客户端,通过GL内核渲染处理以后再将数据发往GPU ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
随机推荐
- 关于hashmap的理解
首先分析第一个比较重要的方法 put 方法,源码如下 public V put(K key, V value) { if (key == null) return putForNullKey(valu ...
- Window下SVN服务器搭建以及客户端使用
一.下载 上一篇博客是关于Jenkins的内容,在Jenkins自动化编译时可能会自动获取版本更新进行build,那就需要用到版本更新的工具.这里使用VisualSVN Server来作为搭建svn的 ...
- 遇到的面试题-sql
sql面试题(学生表_课程表_成绩表_教师表) 原帖链接:http://bbs.csdn.net/topics/280002741 表架构 Student(S#,Sname,Sage,Ssex) 学生 ...
- 个人作业3——(Alpha阶段)
一.alpha 过程总结 1.这学期的软件工程作业,由于各种事情冲突和时间安排问题,前期并没有太多时间去好好应对,中途有很多次都想放弃.但最后还是咬咬牙在同学的帮助下完成了一些基本任务,在这门课程开始 ...
- 201521123104 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点 1.2 可选:使用常规方法总结其他上课内容. 1.接口不是类,不能使用new进行实例化; 2.接口可以扩展; 3.接口中可以包含 ...
- 201521123093 java 第四周学习总结
1.平面作业 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:1.类与方法的注释 2.super关键字代表的是父类,super.方法表示调用的是父类 2. ...
- 201521123114 《Java程序设计》第3周学习总结
1. 本章学习总结 2. 书面作业 Q1.代码阅读 以上代码可否编译通过?哪里会出错?为什么?尝试改正? 如果创建3个Test1对象,有内存中有几个i,几个j?请分析原因? 不能编译通过,Test1g ...
- 201521123022 《Java程序设计》第三周学习总结
1.本周学习总结 2.书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pu ...
- 201521123055 《Java程序设计》第12周学习总结
1. 本章学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. Q ...
- 201521123053《Java课程设计》第十四周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 知识点: 创建表的命令有若干行,如果中间某行输入错误,不能修改:可以使用记事本现将命令输入,然后复制粘贴到mys ...