我们可以部署一些特殊的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");
%>
分享到:
相关推荐
Web监听器是Java Web应用程序中的一个重要组件,它们允许开发者在特定事件发生时执行代码,比如在Servlet上下文初始化或销毁时、用户会话创建或结束时等。在Java Web开发中,监听器通过实现特定接口并配置在`web.xml...
在这个"关于监听器Listener和过滤器的小demo"中,作者可能创建了一个简单的Web应用程序,用以演示如何使用监听器监听应用程序的事件,以及如何使用过滤器处理请求和响应。文件`day10.html`和`day10.md`可能是记录了...
### Java监听器和过滤器详解 #### 监听器概念及分类 监听器在Java Web开发中扮演着非常重要的角色,主要用于监听特定容器事件的发生,比如服务器对象的创建与销毁等,并根据这些事件做出相应的处理。它的工作原理...
在IT行业中,监听器(Listener)和过滤器(Filter)是两种非常重要的组件,它们在Web应用程序中扮演着不可或缺的角色。本文将详细讲解如何利用监听器进行访问计数以及通过过滤器来过滤非法字符,以确保系统的安全性...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两种非常重要的组件,它们主要用于增强应用程序的功能和管理应用程序的状态。本篇文章将详细解释这两种技术的使用、配置及其区别。 首先,我们来了解过滤...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的组件,它们主要用于增强应用程序的功能和管理应用程序的状态。以下是关于这两个概念的详细说明。 **过滤器(Filter)** 过滤器是Servlet...
Java EE(Java Platform, Enterprise Edition)是用于构建企业级分布式应用程序的框架,它提供了一系列标准接口和组件模型,包括上下文、监听器和过滤器。这些概念是Java EE开发中的核心组成部分,对于理解和优化Web...
在这些技术中,过滤器(Filter)和监听器(Listener)是两个关键的概念,它们在处理请求、响应以及管理应用程序状态时发挥着重要作用。下面将详细讲解这两者的区别。 1. **过滤器(Filter)** - **定义**:过滤器...
在Java Web开发中,Servlet、监听器(Listeners)和过滤器(Filters)是构建Web应用程序不可或缺的组件。这里我们主要探讨如何使用它们来实现文件上传的功能。 Servlet是Java提供的一种用于处理HTTP请求的服务端...
监听器主要用于监听应用程序中的特定事件,而过滤器则用于在请求处理之前和之后对请求和响应进行拦截,进行预处理和后处理。 【监听器】 1. **监听器定义**:监听器是实现了特定接口的Java类,用于监听另一个Java...
在JavaWeb开发中,过滤器(Filter)和监听器(Listener)是两种非常重要的组件,它们能够帮助我们实现更精细的控制和管理应用程序的行为。本篇将详细介绍过滤器的原理、使用方法、映射配置以及实际应用案例。 ### 1...
在Java Web开发中,监听器(Listeners)和过滤器(Filters)是两个非常重要的概念,它们主要用于增强应用程序的功能和性能。这两个组件都是Servlet规范的一部分,能够帮助开发者在Web应用程序的不同阶段进行介入,...
在Java Web开发中,Model2架构、监听器和过滤器是三个重要的概念,它们共同构建了一个功能完善的Web应用程序。现在,让我们深入理解这三个组件以及它们如何协同工作。 **Model2架构**:Model2是MVC(Model-View-...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们主要用于增强应用程序的功能和管理应用程序的状态。这篇文章将对这两者的应用进行深入的总结。 **过滤器Filter** 过滤器是在...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们主要用于增强应用程序的功能和管理应用程序的生命周期。本教程将深入探讨这两个核心组件,以帮助开发者更好地理解和应用它们。 ...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们主要用于增强应用程序的功能和管理应用程序的生命周期。过滤器主要负责对HTTP请求和响应进行拦截和处理,而监听器则用来监听和...
在Java Web开发中,监听器和过滤器是两种重要的组件,它们分别用于监听Web应用程序中的特定事件和过滤客户端的请求。这两种技术都基于Java的Servlet API,有助于提升应用的功能性和效率。 **监听器(Listener)** ...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们主要用于增强应用程序的功能和管理应用程序的状态。以下是这两个概念的详细解释以及如何在实际项目中使用它们。 ### 过滤器...
在Eclipse中创建Web项目是开发Java Web应用程序的常见步骤,这个过程涉及到多个知识点,包括Eclipse IDE的使用、Web项目结构的理解以及相关的配置。以下将详细解释这些内容。 首先,Eclipse是一款强大的开源集成...
在Servlet技术中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们帮助开发者实现对请求和响应的拦截、处理以及管理应用程序的状态。 ### 1. Servlet过滤器 **过滤器** 是Servlet API提供的一种...