监听器

监听器基本框架

package cn.mldn.lxh.listener ;

import javax.servlet.http.* ;

public class HttpSessionDemo
 implements HttpSessionListener,HttpSessionAttributeListener
{
 private HttpSession session ;
 // 实现方法
 public void sessionCreated(HttpSessionEvent se)
 {
  this.session = se.getSession() ;
  System.out.println("** Session 创建 ....") ;
  System.out.println("** SessionID --> "+this.session.getId()) ;
 }
 public void sessionDestroyed(HttpSessionEvent se)
 {
  System.out.println("** Session 销毁 ....") ;
 }
 public void attributeAdded(HttpSessionBindingEvent se)
 {
  System.out.println("** Session 增加属性:"+se.getName()+" --> "+se.getValue()) ;
 }
 public void attributeRemoved(HttpSessionBindingEvent se)
 {
  System.out.println("** Session 删除属性:"+se.getName()+" --> "+se.getValue()) ;
 }
 public void attributeReplaced(HttpSessionBindingEvent se)
 {
  System.out.println("** Session 替换属性:"+se.getName()+" --> "+se.getValue()) ;
 }
};
/*
  <listener>
 <listener-class>cn.mldn.lxh.listener.HttpSessionDemo</listener-class>
  </listener>
*/ 

package cn.mldn.lxh.listener ;

import javax.servlet.* ;

public class ServletContextDemo
 implements ServletContextListener,ServletContextAttributeListener
{
 private ServletContext application = null ;
 // 实现方法
 public void contextInitialized(ServletContextEvent sce)
 {
  this.application = sce.getServletContext() ;
  System.out.println("** 上下文初始化 ...") ;
  System.out.println("** 当前虚拟目录的绝对路径:"+this.application.getRealPath("/")) ;
 }
 public void contextDestroyed(ServletContextEvent sce)
 {
  System.out.println("** 上下文销毁 ...") ;
 }

 public void attributeAdded(ServletContextAttributeEvent scab)
 {
  System.out.println("** 增加属性:"+scab.getName()+" --> "+scab.getValue()) ;
 }
 public void attributeRemoved(ServletContextAttributeEvent scab)
 {
  System.out.println("** 删除属性:"+scab.getName()+" --> "+scab.getValue()) ;
 }
 public void attributeReplaced(ServletContextAttributeEvent scab)
 {
  System.out.println("** 替换属性:"+scab.getName()+" --> "+scab.getValue()) ;
 }
};

/*
  <listener>
 <listener-class>cn.mldn.lxh.listener.ServletContextDemo</listener-class>
  </listener>
*/

 

在线人员监听

package cn.mldn.lxh.listener ;

import java.util.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class OnLineDemo
 implements ServletContextListener,HttpSessionListener,HttpSessionAttributeListener
{
 // 声明一个ServletContext对象
 private ServletContext application = null ;
 public void contextInitialized(ServletContextEvent sce)
 {
  // 容器初始化时,向application中存放一个空的容器
  this.application = sce.getServletContext() ;
  this.application.setAttribute("alluser",new ArrayList()) ;
 }

 public void contextDestroyed(ServletContextEvent sce)
 {}

 public void sessionCreated(HttpSessionEvent se)
 {}
 public void sessionDestroyed(HttpSessionEvent se)
 {
  // 将用户名称从列表中删除
  List l = (List)this.application.getAttribute("alluser") ;
  String value = (String)se.getSession().getAttribute("uname") ;
  l.remove(value) ;
  this.application.setAttribute("alluser",l) ;
 }

 public void attributeAdded(HttpSessionBindingEvent se)
 {
  // 如果登陆成功,则将用户名保存在列表之中
  List l = (List)this.application.getAttribute("alluser") ;
  l.add(se.getValue()) ;
  this.application.setAttribute("alluser",l) ;
 }
 public void attributeRemoved(HttpSessionBindingEvent se)
 {}
 public void attributeReplaced(HttpSessionBindingEvent se)
 {}
};
/*
  <listener>
 <listener-class>cn.mldn.lxh.listener.OnLineDemo</listener-class>
  </listener>
*/

 

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>
<form action="online.jsp" method="post">
用户名:
<input type="text" name="name">
<input type="submit" value="登陆">
<a href="logout.jsp">注销</a>
</form>
<!-- 向session接收输入的用户名 -->
<%
 if(request.getParameter("name")!=null)
 {
  session.setAttribute("uname",request.getParameter("name")) ;
 }
%>
<h2>在线人员</h2>
<hr>
<%
 List l = (List)application.getAttribute("alluser") ;
 Iterator iter = l.iterator() ;
 while(iter.hasNext())
 {
%>
  <li><%=iter.next()%>
<%
 }
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值