最近在一个电子商务项目我遇到了一些问题,就是处理大数据初始化。因为刚开始设计的是把大数据量的初始化放入到index.do,但是这里面就有一个很大的问题,就是别人访问我的首页时候由于第一次请求数据量就可能造成用户访问超时。所以一超时用户就会关闭浏览器,这时候会造成抛出异常,异常的数据是:broken pipe。
于是这样就造成网站访问异常缓慢,而且有的事情请求量过大了会直接造成504错误,于是我想了一下决定让大数据量在tomcat启动的时候去进行初始化,于是我自己写了一个StartupListener该类继承于ServletContextListener,这个接口提供了两个接口:一个是init()在tomcat启动的时候调用,而另一个destory()方法则是在tomcat销毁时调用。话也不多说了,我把代码与配置亮出来,方便以后遇到同样的问题时候我能够借用这个东西。
package com.noah.tomcat;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.noah.ebiz.cache.Cache;
import com.noah.ebiz.commodity.LuceneSearch;
public class StartupListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("数据初始化.......");
Cache cache = Cache.getInstance();
LuceneSearch search = LuceneSearch.getInstace();
System.out.println("数据化初始化结束.......");
}
}
而xml的配置我是这么配置的:
<listener>
<listener-class>com.noah.tomcat.StartupListener</listener-class>
</listener>
分享到:
相关推荐
ServletContextListener 使用详解 ServletContextListener 是 Servlet API 中的一个接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当 Servlet 容器启动或终止 Web 应用时,...
这是一个maven项目,直接导入eclipse即可运行,此处监听的是9092端口,将项目运行起后,可以对其端口使用情况进行查看,在window下,可以使用命令 netstat -aon|findstr "9092",在linux下可以使用命令netstat -...
需要注意的是,`Timer`的线程模型可能导致多个任务之间存在依赖关系时出现混乱,因此在多线程环境下使用时需谨慎。 结合`ServletContextListener`和`Timer`,可以在Web应用程序启动时创建一个定时器,用于定时执行...
### ServletContextListener的使用 当一个Web应用程序被部署并启动时,服务器会调用`contextInitialized`方法。我们可以利用这个特性来执行一些初始化任务,如设置全局变量、加载配置文件、创建数据库连接池等。在...
在Spring MVC框架中,`ServletContextListener`扮演着重要的角色,它是Java Servlet API的一部分,用于监听ServletContext事件。在本文中,我们将深入探讨`ServletContextListener`如何与Spring MVC协作,以及如何...
在这个场景中,我们将探讨如何使用`ServletContextListener`来实现在线人数的统计和显示人员列表的功能。 首先,让我们了解一下`ServletContextListener`的基本用法。要创建一个`ServletContextListener`,你需要...
在这篇文章中,我们将介绍如何使用ServletContextListener来实现UDP监听。 在UDP监听中,需要使用DatagramSocket来创建一个UDP套接字,以便监听UDP数据报。同时,需要使用ServletContextListener来监听Servlet上...
Java 定时任务,每天定时执行任务 Java 定时任务是指在 Java 语言中实现的定时执行任务的机制,通过使用 Timer ...此外,我们还可以学习如何使用 Calendar 和 ServletContextListener 来实现每天定时执行任务的功能。
开发者可以参考这些代码,学习如何在自己的项目中使用监听器来增强功能和优化性能。 总结来说,`ServletContextListener`、session监听和请求侦听器是Java Web开发中不可或缺的组件,它们使得开发者能够更好地控制...
### Java监听器使用详解 #### 一、引言 在Java Web开发中,尤其是在使用...综上所述,通过合理地使用`ServletContextListener`,开发者可以有效地管理和控制Web应用的生命周期事件,从而提升应用的整体性能和稳定性。
在这个场景中,我们将使用一个特定的监听器,即ServletContextListener,来实现定时任务。 1. **ServletContextListener**:这是Java Web中的一种监听器,用于监听ServletContext对象的生命周期事件。我们可以通过...
JavaWeb新版教程. jsp--ServletContextListener监听器演示.avi
编写程序,提供用户登录界面。 登录成功后,提示用户上次登录时间,登录IP地址信息。 保存用户的登录信息可以使用XML,也可以使用纯文本文件。... 要求使用ServletContextListener,要求理解Listener.
在本实验中,我们可能会使用到`HttpSessionListener`、`ServletRequestListener`或`ServletContextListener`等监听器接口。例如,`HttpSessionListener`可以用来监控用户会话的创建和销毁,确保只有经过登录验证的...
它们实现了特定的接口,如`ServletContextListener`、`HttpSessionListener`或`ServletRequestListener`等,以便在特定事件发生时执行相应的操作,如初始化、销毁、创建或销毁域对象等。 二、`Listener`的分类 1. `...
本文将详细介绍如何使用`Timer`类结合`ServletContextListener`接口来实现在Web应用中启动并管理一个定时任务。 #### 二、Java定时器的基本概念 1. **`java.util.Timer`类**:`Timer`类是Java中用于执行定时任务的...
以下是这两个概念的详细解释以及如何在实际项目中使用它们。 ### 过滤器(Filter) 过滤器是Servlet规范的一部分,允许开发者在请求到达目标Servlet或JSP之前对请求进行预处理,并在响应离开目标之后进行后处理。...
在这个笔记中,我们将深入探讨如何在Web应用环境下使用Spring框架,特别是通过两种不同的方法:配置监听器类和调用HttpServlet类,以及配置ContextLoaderListener。 首先,Spring框架在Web应用中的主要作用是提供...