`
czpae86
  • 浏览: 720558 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

javax.servlet.ServletContextListener 作用

    博客分类:
  • JAVA
 
阅读更多

ServletContextListener 是 ServletContext 的监听者,如果 ServletContext 发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 将要被销毁。

 

服务器启动时,ServletContextListener 的 contextInitialized()方法被调用,所以在里面创建好缓存。可以从文件中或者从数据库中读取取缓存内容生成类,用 ervletContext.setAttribute()方法将缓存类保存在 ServletContext 的实例中。


程序使用 ServletContext.getAttribute()读取缓存。如果是 JSP,使用a pplication.getAttribute()。如果是 Servlet,使用 getServletContext().getAttribute()。如果缓存发生变化(如访问计数),你可以同时更改缓存和文件/数据库。或者你等 变化积累到一定程序再保存,也可以在下一步保存。


服务器将要关闭时,ServletContextListener 的 contextDestroyed()方法被调用,所以在里面保存缓存的更改。将更改后的缓存保存回文件或者数据库,更新原来的内容。

 

 

举个简单的例子:在一些论坛,社区及聊天室当中,删除在线的超时用户就可以利用这个接口来实现.

可以利用JAVA的TimerTask及Timer类来实现每隔一定的时间进行自动检测.

import java.util.TimerTask;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class UserOnlineTimerTask extends TimerTask {

Log log = LogFactory.getLog(UserOnlineTimerTask.class);

public void run() {
// 删除超时在线用户
log.info("删除在线的超时用户....");

}

}

 

import java.io.IOException;
import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SysListener
extends HttpServlet
implements ServletContextListener {

Log log = LogFactory.getLog(SysListener.class);
Timer timer = new Timer();

public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
//
}

public void contextInitialized(ServletContextEvent sce) {

log.info("initial context....");

timer.schedule(new UserOnlineTimerTask(), 0, 10000);

}

public void contextDestroyed(ServletContextEvent sce) {

log.info("destory context....");

timer.cancel();
}

}
 
分享到:
评论

相关推荐

    javax.servlet.jar下载

    Files contained in javax.servlet.jar:...javax.servlet.ServletContextListener.class META-INF/maven/org.mortbay.jetty/servlet-api-2.5/pom.xml META-INF/maven/org.mortbay.jetty/servlet-api-2.5/pom.properties

    javax.servlet-api-3.1.0.jar

    它们通过实现不同的监听器接口,如`javax.servlet.ServletContextListener`,`javax.servlet.http.HttpSessionListener`,可以在事件触发时执行相应的操作。 `javax.servlet-api-3.1.0.jar`不仅包含这些基本组件的...

    javax.servlet3.0 javax.servlet_jsp2.0源码

    【标题】"javax.servlet3.0 javax.servlet_jsp2.0源码"涉及的是Java Servlet和JSP(JavaServer Pages)技术的核心API,这两个组件是Java Web开发的基础。源码分析可以帮助我们深入理解它们的工作原理。 【描述】...

    javax.servlet_api.chm中文版英文版

    9. **监听器Listener**:Servlet API提供了各种监听器,如SessionListener、ServletContextListener等,可以在特定事件(如session创建、销毁)发生时执行代码。 10. **异步处理**:从Servlet 3.0开始,Servlet API...

    javax.servlet-3.0

    【标题】"javax.servlet-3.0" 是Java服务器页面(JSP)和Servlet技术的一个重要版本,这个版本主要关注于提升Web应用的性能、可扩展性和灵活性。它是由Java Community Process (JCP) 通过JSR(Java Specification ...

    javax.servlet-api

    `javax.servlet-api`是一个关键的Java库,它定义了Servlet、过滤器(Filter)和监听器(Listener)等核心接口,是开发Java Servlet应用的基础。这个库通常以JAR(Java Archive)文件的形式存在,例如在提供的`javax....

    javax.servlet-api-4.0.1.jar

    7. **Listener**:Servlet API还支持事件监听器,如`ServletContextListener`、`ServletRequestListener`和`HttpSessionListener`,可以在特定事件(如Web应用启动、请求创建、会话创建等)发生时执行代码。...

    servlet-api-2.4.jar.zip

    javax.servlet.ServletContextListener javax.servlet.ServletRequestListener javax.servlet.ServletResponseWrapper javax.servlet.http.HttpServletRequest javax.servlet.http.HttpSessionContext javax.servlet...

    ServletContextListener的应用

    这个接口的主要作用是监听Servlet上下文(`ServletContext`)的生命周期事件,比如Web应用的启动和停止。在`web.xml`配置文件中,我们可以通过注册`ServletContextListener`来实现特定的功能。 ### ...

    web-servlet:对于使用javax.servlet包的用户的其他有用的类

    监听器通过实现各种特定接口,如`javax.servlet.http.HttpSessionListener`、`javax.servlet.ServletContextListener`、`javax.servlet.ServletRequestListener`等来注册。这些监听器可以在合适的时机执行相应的操作...

    浅析javax.servlet.Servlet,ServletContext接口

    在Java Web开发中,`javax.servlet`包下的`Servlet`和`ServletContext`接口扮演着至关重要的角色。这两个接口是Servlet API的核心部分,它们为Web应用程序提供了一种标准的方式来处理HTTP请求并管理全局数据。 首先...

    servlet2.4doc

    contextInitialized(ServletContextEvent) - Method in interface javax.servlet.ServletContextListener Notification that the web application initialization process is starting. Cookie - class javax....

    servlet-api 各种版本

    - 实现了监听器(Listener)接口,如ServletContextListener,用于在Servlet容器启动和停止时执行特定操作。 - 引入过滤器(Filter)概念,允许开发者在请求到达Servlet之前进行拦截和处理,实现如权限控制、字符...

    [课堂课件讲解]Java微服务实践-Spring Boot Web篇(下).pptx

    包括 javax.servlet.ServletContextListener、javax.servlet.http.HttpSessionListener、javax.servlet.http.HttpSessionActivationListener、javax.servlet.ServletRequestListener 等。 8. Servlet 3.0 后时代的...

    Servlet API中文文档

    - `javax.servlet.ServletContextListener`:监听器可以监听到Web应用的生命周期事件,如初始化和销毁,常用于初始化全局变量或执行启动时的任务。 Servlet API还提供了会话管理(Session Management)的功能,通过...

    tomcat启动|退出执行事件

    import javax.servlet.ServletContextListener; import javax.servlet.http.HttpServlet; public class Test extends HttpServlet implements ServletContextListener { // 服务器停止时执行该事件 public void ...

    java.servlet.jar

    在Java Servlet API中,最核心的接口是`javax.servlet.Servlet`和`javax.servlet.http.HttpServlet`。`Servlet`接口提供了通用的网络服务处理方法,而`HttpServlet`则专门针对HTTP协议进行了扩展,提供处理HTTP请求...

    Servlet API 类图

    - `javax.servlet.Servlet`是所有Servlet的基类,定义了Servlet的基本行为。它包含初始化、服务、销毁等生命周期方法,如`init()`, `service()`, 和`destroy()`。 2. **GenericServlet类** - `javax.servlet....

    Java Servlet应用程序接口查询Java.Servlet.API和SWT 应用程序接口查询SWT_API.rar

    例如,`javax.servlet.ServletContextListener`可以监听ServletContext的生命周期事件,如Web应用的启动和停止。 SWT(Standard Widget Toolkit)是用于创建Java GUI应用程序的库,它是Eclipse IDE的基础。与AWT和...

    JAVA培训Servlet监听器.pdf

    ServletContextListener用于监听WEB应用启动和销毁的事件,监听器类需要实现javax.servlet.ServletContextListener接口。例如: ```java public class QuartzListener implements ServletContextListener{ private...

Global site tag (gtag.js) - Google Analytics