`
jiangduxi
  • 浏览: 443260 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

创建Web监听和过滤程序

阅读更多
  我们可以部署一些特殊的Servlet类,这些Servlet可以监听Web应用的上下文信息、Servlet会话信息和Servlet请求信息。通过这些监听程序,可以在后台自动执行某些程序。另外,我们还可以在Web应用中部署过滤器,通过过滤器,可以对客户端的请求和客户端的响应进行统一处理。
 
1.Servlet上下文监听。
  在Web应用中可以部署监听程序,这个监听程序能够监听ServletContext的信息,比如ServletContext的创建和删除,ServletContext属性的增加、删除、修改等等。

  为了实现这个功能,这种监听程序需要实现ServletContextListener和ServletContextAttributeListener接口。下面看个实例,它实现对ServletContext和其属性的监听
 package com.test.ch9;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContext.AttributeEvent;
 import javax.Servlet.ServletContext.AttributeListener;
 import java.io.*;
 
  public final class MyServletContextListener implements ServletContextListener,ServletContextAttributeListener{
  
   private ServletContext context=null;

   //以下代码实现ServletContextListener接口
   
    public void  contextDestoryed(ServletContextEvent sce){
     logout("contextDestroyed()---->ServletContext被销毁");
     this.context=null;
    }
  
   public void contextInitialized(ServletContextEcent sce){
     
      this.context=sce.getServletContext();
      logout("contextInitialized()--->ServletContext初始化了");
    }
    
   //实现ServletContextAttributeListener接口
  
   public void attributeAdded(ServletContextAttributeEvent scae){
    logout("增加了一个ServletContext属性:attributeAdded('"+scae.getName()+"','""+scae.getValue()+"')'");
    }
 public void attributeRemoved(ServletContextAttributeEvent scae){
   logout("删除一个ServletContext属性:attributeRemove('"+scae.getName()+"','"+scae.getValue()+"')");
   }
 
 public void attributeReplaced(ServletContextAttributeEvent scae){
  logout("某个ServletContext的属性被改变:attributeReplaced('"+scae.getName()+"','"+scae.getValue()+"')");
 }

  private void logout(String message){
    PrintWriter out=null;
     try{
           out=new PrintWriter(new FileOutputStream("C:\\test.txt",true));
         out.println(new java.util.Date().toLocaleString()+"::Form ContextListener:"+message);
          out.close();
          }
      catch(Exception e){
         out.close();
         e.printStackTrace();
        }
    }
} 


MyServletContextListener实现了ServletContextListener、ServletContextAttributeListener接口,所以它能够监听ServletContext创建、销毁及它的属性改变的信息。下面部署这个监听器。如下
<web-app>
   <Listener>
        <listener-class>com.test.ch9.MyServletContextListener</listener-class>
   </Listener>
...............
</web-app>

下面给出一个测试程序。如下
 <%
    out.println("add attribute");
    getServletContext().setAttribute("userName","root");
    out.println("replace attribute");
    getServletContext().setAttribute("userName","hacking");
    out.println("remove attribute");
    getServletContext().removeAttribute("userName");
%>
分享到:
评论

相关推荐

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

    李兴华Java Web开发实战经典(高清版) Part2

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例 132 产品宣传屏幕保护程序 4.5 DirectShow程序设计 cc实例133 音频捕捉 cc实例134 视频捕捉 第5章 文件系统 5.1 文件的基本操作 cc实例135 创建和删除文件夹 cc实例136 把文件删除到回收站中...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     cc实例135 创建和删除文件夹   cc实例136 把文件删除到回收站中   cc实例137 清空回收站   5.2 查找文件   cc实例138 搜索文件   cc实例139 检查文件是否存在   cc实例140 提取指定文件夹目录...

    java web 视频、电子书、源码(李兴华老师出版)

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例135 创建和删除文件夹   cc实例136 把文件删除到回收站中   cc实例137 清空回收站   5.2 查找文件   cc实例138 搜索文件   cc实例139 检查文件是否存在   cc实例140 提取指定文件夹目录...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

    J2EE中文版指南 CHM格式 带全文检索

    创建Web客户端 30 编写Web客户端代码 30 编译Web客户端 32 打包Web客户端 32 指定Web客户端的企业Bean引用 32 六.设置企业Bean的JNDI名 32 七.部署J2EE应用程序 33 八.运行J2EE应用程序客户端 34 九.运行Web...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、...

Global site tag (gtag.js) - Google Analytics