Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2779575
  • 博文数量: 77
  • 博客积分: 10204
  • 博客等级: 上将
  • 技术积分: 5035
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-05 22:13
文章分类
文章存档

2013年(1)

2010年(1)

2009年(17)

2008年(58)

我的朋友

分类: Java

2008-04-06 13:46:17

应用场景示例:
 
在部署描述文件(web.xml)中设置一个上下文参数监听者类,监听者根据这个参数构造一个对象,并将这个对象放入上下文属性当中,这样在整个WEB应用的任何地方,都可以使用此类
 
例:
 
①--------修改部署描述文件
 
在web.xml的web-app节点下创建: 

   数据库类型
   dbType
   mysql
 
在web.xml的web-app节点下创建:

   
   
           cu.blog.liuxingyuyuni.module.DbServletContextListener
  
 
②-------编写属性类
 

package cu.blog.liuxingyuyuni.module;

public class DbManager {
    private String dbType;

    public String getDbType() {
        return dbType;
    }

    public void setDbType(String dbType) {
        this.dbType = dbType;
    }
}

③-----编写监听者类

 

package cu.blog.liuxingyuyuni.module;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class DbServletContextListener implements ServletContextListener {

    public void contextDestroyed(ServletContextEvent sce) {

    }

    public void contextInitialized(ServletContextEvent event) {
        ServletContext sc = event.getServletContext();
        String dbType = sc.getInitParameter("dbType");
        DbManager objDb = new DbManager();
        objDb.setDbType(dbType);
        sc.setAttribute("dbType", objDb);
    }
}

④-------编写一个测试类

DbManager dbManager = (DbManager)getServletContext().getAttribute("dbType");
        response.getWriter().println("数据库类型是 : " + dbManager.getDbType() + "
"
)

 
常见的几个监听者如下:
 
1. ServletContextAttributeListener [监听上下文当中是否增加,删除或替换了一个属性]
2. HttpSessionListener [监听活动的会话,可以统计有多少个并发用户]
3. ServletRequestListener [监听请求,可以建立日志记录]
4. ServletRequestAttributeListener [监听什么时候增加,删除或替换了一个请求属性]
5. HttpSessionBindingListener [会话绑定监听者]
6. HttpSessionAttributeListener [监听什么时候增加,删除或替换了一个会话属性]
7. ServletContextListener [监听是否创建或撤销了一个上下文属性]
8. HttpSessionActivationListener [监听话话迁移,例如一个会话从一个JVM到另一个JVM时]
 
其中HttpSessionBindingListener监听者无需在部署描术文件中注册,它会被自动注册
 
这些监听者编写方式如出一辙基本上相同.
阅读(2010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~