服务器监听程序
来源:互联网 发布:阿里云免费体验 编辑:程序博客网 时间:2024/06/05 09:33
Java Servlet里提供了很多的服务器监听接口,但是却没有明确地说明它们的使用方法.J2EE的API文档里面也没有Useage参考了.我就写一篇文章给不会使用它们的java爱好者们一点参考吧.其实这些也是很简单的.
大多数的Listener都不是用在javabean或其它类里面的,它们都应该作为服务器的一部分,也就是说,当这些事情发生时,由服务器回调这些监听器里的方法,对于jsp或servlet程序就是透明的了.这样的listener有:ServletContextListener,ServletContextAttributeListener, HttpSessionListener,HttpSessionAttributeListener, ServletRequestListener,ServletRequestAttributeListener .
ServletContextListener:监听服务器启动时和关闭 ServletContextAttributeListener:监听服务器上下文(全局)属性的变化 HttpSessionListener:监听session HttpSessionAttributeListener:监听session的属性表变化 ServletRequestListener:监听请求变化 ServletRequestAttributeListener:监听request属性变化要使用它们,我们就必须写一个类,实现上面的一个或几个接口,然后在web-inf的web.xml中加入配置:
<listener>
<listener-class>包名.类名</listener-class>
</listener>
(注意:类放在class文件夹里.)这样,我们的服务器监听就完成了,给大家举个例子:
方法:统计在线人数,我们可以在服务器里设一个全局int变量(4个字节就够了,一点也不占用服务器的内存资源,当然,如果你的网站同时在线人数大于2的32次方,也可以用8个字节!呵呵),然后当我们服务器产生一个session的时候,把那个值加1,删除一个session的时候,把那个值减1就OK了.所以我们用到的就是HttpSessionListener...因为是全局变量,所以用户在任何情况下都可以取得这个值.
大致程序如下:
class Online implements HttpSessionListener{
//.....其它的变量和方法就不写了
public void sessionCreated(HttpSessionEvent se) {
ServletContext sc=se.getSession().getServletContext();
Integer i=(Integer)sc.getAttribute("online");
if(i==null) i=new Integer(0);
i++;
sc.setAttribute("online",i);
}
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext sc=se.getSession().getServletContext();
Integer i=(Integer)sc.getAttribute("online");
i--;
sc.setAttrbute("online",i);
}
}
说明:程序随手写的,还要在每行结尾写br,烦死了,可能有点输入错误什么的,请原谅了.呵呵.
在jsp中使用时,就用
在线人数为:<%=config.getServletContext().getAttribute("online")%>就行了,很简单.
大多数的Listener都不是用在javabean或其它类里面的,它们都应该作为服务器的一部分,也就是说,当这些事情发生时,由服务器回调这些监听器里的方法,对于jsp或servlet程序就是透明的了.这样的listener有:ServletContextListener,ServletContextAttributeListener, HttpSessionListener,HttpSessionAttributeListener, ServletRequestListener,ServletRequestAttributeListener .
<listener>
<listener-class>包名.类名</listener-class>
</listener>
(注意:类放在class文件夹里.)这样,我们的服务器监听就完成了,给大家举个例子:
统计在线人数
方法:统计在线人数,我们可以在服务器里设一个全局int变量(4个字节就够了,一点也不占用服务器的内存资源,当然,如果你的网站同时在线人数大于2的32次方,也可以用8个字节!呵呵),然后当我们服务器产生一个session的时候,把那个值加1,删除一个session的时候,把那个值减1就OK了.所以我们用到的就是HttpSessionListener...因为是全局变量,所以用户在任何情况下都可以取得这个值.
大致程序如下:
class Online implements HttpSessionListener{
//.....其它的变量和方法就不写了
public void sessionCreated(HttpSessionEvent se) {
ServletContext sc=se.getSession().getServletContext();
Integer i=(Integer)sc.getAttribute("online");
if(i==null) i=new Integer(0);
i++;
sc.setAttribute("online",i);
}
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext sc=se.getSession().getServletContext();
Integer i=(Integer)sc.getAttribute("online");
i--;
sc.setAttrbute("online",i);
}
}
说明:程序随手写的,还要在每行结尾写br,烦死了,可能有点输入错误什么的,请原谅了.呵呵.
在jsp中使用时,就用
在线人数为:<%=config.getServletContext().getAttribute("online")%>就行了,很简单.
- 服务器监听程序
- 服务器监听程序
- 动态域名服务器网络监听程序
- ORACLE服务器监听程序LSNRCTL
- Tomcat服务器自动加载监听程序
- ORA-12500:TNS;监听程序无法启动专用服务器进程
- TNS:监听程序无法启动专用服务器进程,
- Tomcat服务器自动加载监听程序(转载)
- 使用 acl 服务器框架编写监听多个地址的服务器程序
- TNS-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序
- 服务器监听客户
- 监听服务器是否运行
- php 实现监听服务器
- 监听服务器端口
- ORA-12500: TNS: 监听程序无法启动专用服务器进程(解决)
- 客户端连接服务器,配置出错“连接超时”或者“无监听程序”解决方法
- ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄
- 错误“ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄”解决方法
- javascript+css 实现tab功能
- 利用DWR获取数据改变页面数据
- Linux 下安装Jdk、Tomcat、Oracle
- tel for decoration
- 基本概念:封装
- 服务器监听程序
- 健全的IIS应用程序池设置
- Autodest第一电面试题 (一)
- IIS的完整控制类
- DotNetBar 6.8.0.1 for VS2003/VS2005
- Google Web Search
- Alan Kay面向对象之父总结的OOP特性
- 彻底弄懂CSS盒子模式(DIV布局快速入门)
- 用编程方式给IIS里增加MIME类型