java web中使用 Listener
Listener 是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个 HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1。常用的监听接口有以下几个:
# ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。
# ServletContextListener监听ServletContext。当创建ServletContext时,激发 contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
# HttpSessionListener 监听HttpSession的操作。当创建一个Session时,激发session Created(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。
# HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发 attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。
下面我们开发一个具体的例子,这个监听器能够统计在线的人数。在ServletContext初始化和销毁时,在服务器控制台打印对应的信息。当ServletContext里的属性增加、改变、删除时,在服务器控制台打印对应的信息。
要获得以上的功能,监听器必须实现以下3个接口:
# HttpSessionListener
# ServletContextListener
# ServletContextAttributeListener
我们看具体的代码,见示例14-9。
【程序源代码】
1 // ==================== Program Discription =====================
2 // 程序名称:示例14-9 : EncodingFilter .java
3 // 程序目的:学习使用监听器
4 // ==============================================================
5 import javax.servlet.http.*;
6 import javax.servlet.*;
7
8 public class OnLineCountListener implements HttpSessionListener,
ServletContextListener,ServletContextAttributeListener
9 {
10 private int count;
11 private ServletContext context = null;
12
13 public OnLineCountListener()
14 {
15 count=0;
16 //setContext();
17 }
18 //
相关文档:
序言:
Java 在运行已编译完成的类时,是通过 java 虚拟机来装载和执行的,java 虚拟机通过操作
系统命令 JAVA_HOME\bin\java ?option 来启动,-option 为虚拟机参数,JAVA_HOME 为JDK
安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义 ......
1. super代表父类?代表父类的对象?还是代表父类的引用?为什么super()在构造方法,super.fun()在方法能用?个人认为应该是super表示对象才能这么调用,可父类对象没被new 而如果是表示父类的话,那fun()应该是static方法啊?迷茫~~ 有些东西可以称为定义,不要钻牛角尖 super();表示调用父类的构造方法,只是调用方法, ......
(1) 用extends关键字创建自己的违例类MyException。为这个类写一个构建器,令其采用String参数,并随同String句柄把它保存到对象内。再写一个main()方法,其中令其在try块内掷出MyException类的一个对象。在catch从句内捕获违例,并打印出字串参数。添加一个finally从句,并打印一条消息,证明自己真正到达那里。
&n ......
这是一些相当不错的忠告!每个规则都很有分量!都是长期经验积累的总结,希望能对您有所帮助,使您编出高质量的JAVA代码。中文JAVA技术网fX
W,c6I/R!_3Bb
中文JAVA技术网6o9yV+M
u+V2Nfr5vm
(1)类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所
有单词都应紧靠 ......