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( ...
随机推荐
- 小程序脚本语言WXS,你想要的都在这里了
WXS脚本语言是 Weixin Script脚本的简称,是JS.JSON.WXML.WXSS之后又一大小程序内部文件类型.截至到目前小程序已经提供了5种文件类型. 解构小程序的几种方式,其中一种方式就 ...
- 201521123084 《Java程序设计》第5周学习总结
第5周-继承.多态.抽象类与接口 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1. 代码阅读:Child压缩包内源代码 1.1 com.parent包中C ...
- 个人作业(3)----个人总结(Alpha阶段)
一.个人总结. 个人完成的任务:在此阶段我完成了用户调研.部分测试以及部分博客书写. 个人及团队心得:经过几周Alpha阶段开发后,我大致了解了开发软件的过程,开发一个软件并没有以往想象中那么简易,在 ...
- 201521123095 《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 Q1 List中指定元素的删除(题目4-1) 1.1 实验总结 对于删除函数 ...
- 201521123038 《Java程序设计》 第四周学习总结
201521123038 <Java程序设计> 第四周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.通过 ins ...
- Android四大组件(详细总结)
android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...
- 201521123007《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- 201521123014 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 异常(Exception)处理 异常(Exception)的概念:在程序运行的时候可能出错,Java中把程序出现的错 ...
- JAVA设计模式:蝇量模式
声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7554686.html 一.引出蝇量模式 现在假设有一个项目,这个项目是为公园设计一个景观的部署,那么这个时 ...
- Oracle中Union与Union All的区别(适用多个数据库)
Oracle中Union与Union All的区别(适用多个数据库) 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或 ...