您的位置:首页 > 其它

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销毁了");

}

}

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一起激活和钝化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐