`
Franciswmf
  • 浏览: 800582 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

监听器_是否启动web容器

 
阅读更多
在服务器启动前作判断。
 有某些项目当中,可能会出现需要先判断系统数据库或条件是否通过。如果通过就启动web容器,不通过就不启动web容器。
 以下给出解决思想:
  首先使用ServletContextListener接口作出判断(ServletContextListener会在容器启动前先执行) 
     在ServletContextListner中有两个方法。其中contextDestroyed是在服务器关闭时执行的方法,其中contextInitialized会在服务器启动前执行的方法。
  我们可以在contextInitialized中作判断,当需要停止web服务器时。我们可以调用System.exit(1)强制跳出系统停止服务器启动
    具体代码
package com.im.listener;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.impl.Log4JLogger;
import org.apache.log4j.Logger;
import org.hibernate.util.ConfigHelper;

import com.im.hibernate.HibernateSessionFactory;

public class SystemListener implements ServletContextListener {

public void contextDestroyed(ServletContextEvent arg0) {


}
public void contextInitialized(ServletContextEvent arg0) {
Logger logger=Logger.getLogger(SystemListener.class);
logger.info("系统数据库监听中");
Connection connection = null;
String url=HibernateSessionFactory.getConfiguration().getProperty("connection.url");
String user=HibernateSessionFactory.getConfiguration().getProperty("connection.username");
String password=HibernateSessionFactory.getConfiguration().getProperty("connection.password");
String connectionClass=HibernateSessionFactory.getConfiguration().getProperty("connection.driver_class");
try {
Class.forName(connectionClass);
connection=DriverManager.getConnection(url, user, password);
logger.info("系统数据库连接成功");
} catch (SQLException e) {
logger.error("系统数据库连接失败,停止启动服务器");
System.exit(1);
} catch (ClassNotFoundException e) {
logger.error("找不到系统数据库连接包,停止启动服务器");
System.exit(1);
}finally{
try {
if(connection!=null){
connection.close();
}
} catch (SQLException e) {
System.exit(1);
}
}
}

}


web.xml配置:
//添加服务器监听
<listener>
<listener-class>CheckDB</listener-class>
</listener>
分享到:
评论

相关推荐

    利用servlet监听器,系统启动时创建自定义容器简单例子

    总之,Servlet监听器是Java Web开发中一个强大的工具,它们允许我们在特定事件发生时执行代码,如在应用启动时初始化自定义容器。通过这种方式,我们可以更灵活地控制Web应用的行为,实现更高效的资源管理和应用程序...

    定时启动任务--跟随web容器启动

    1. **监听器**:通过`ServletContextListener`接口来监听Web容器的启动和关闭事件。 2. **定时器**:使用`java.util.Timer`类来实现任务的定时调度。 3. **自定义任务**:定义一个接口或抽象类来表示具体要执行的...

    128元尚硅谷Java视频教程_SpringBoot视频教程(上)核心技术篇

    52、尚硅谷_SpringBoot_web开发-外部Servlet容器启动SpringBoot应用原理 53、尚硅谷_SpringBoot_Docker-简介 54、尚硅谷_SpringBoot_Docker-核心概念 55、尚硅谷_SpringBoot_Docker-linux环境准备 56、尚硅谷_...

    Jetty web 容器

    Jetty 是Servlet规范的实现者,支持Servlet 3.x 特性,如异步处理、过滤器、监听器等。同时,Jetty 还提供了对WebSocket协议的支持,使得实时通信成为可能。 ### 5. 高级特性 - **连接池**: Jetty 内置了连接池...

    javaproject_转化为web项目

    JavaProject工程通常是一个标准的Java应用程序,主要包含源代码、资源文件等,而Web项目则是构建Web应用的基础,它需要额外的配置和结构以支持动态网页(如JSP)、Servlet以及Web容器(如Tomcat)的运行。...

    WEB.XML详解

    节点用于配置Web事件监听器,用于监听Web容器中发生的事件,如ServletContext的创建和销毁事件。当Web容器创建ServletContext时,它还会创建节点中指定的类的实例。在Web应用部署描述文件web.xml中,元素指定了一个...

    servlet监听器案例

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定的Servlet容器事件发生时执行相应的代码。在本文中,我们将深入探讨Servlet监听器的工作原理、配置和使用,结合具体的"web.xml"配置以及JSP页面的...

    Java SpringBoot课件+源码视频教程

    50、_SpringBoot_web开发-嵌入式Servlet容器启动原理 1 [% c- f9 [+ \* l 51、_SpringBoot_web开发-使用外部Servlet容器&JSP;支持 52、_SpringBoot_web开发-外部Servlet容器启动SpringBoot应用原理 53、_...

    监听器源代码.zip

    2. **Servlet监听器**: 在Web开发中,特别是使用Servlet技术时,监听器(如ServletContextListener、ServletRequestListener和HttpSessionListener)用于监听Servlet容器的特定事件。例如,ServletContextListener...

    web学习笔记 —— 监听器

    在Web开发中,监听器(Listener)是一种关键的组件,它们是Java Servlet规范的一部分,用于监控和响应特定的Servlet容器事件。本学习笔记主要聚焦于理解监听器的概念、作用以及如何在实际应用中使用它们。 一、监听...

    web容器中实例化spring相关配置解析

    Web容器中实例化Spring相关配置解析需要在web.xml文件中配置相应的参数,包括ContextLoaderListener监听器和contextConfigLocation参数。这些配置将决定Spring容器的实例化过程。 此外,为了更好地理解Spring容器的...

    servlet监听器技术源码

    Servlet监听器技术是Java Servlet规范中的一项重要特性,它允许开发者在特定的Servlet容器事件发生时执行自定义的代码逻辑。这些事件可以包括Web应用程序的初始化、终止,或者是Servlet或Servlet上下文...

    javaEE监听器

    3. **EJB监听器**:在Enterprise JavaBeans(EJB)中,监听器主要是用于监听EJB容器的事件,例如ejbCreate、ejbRemove等。这些监听器通过实现特定的EJB接口,如javax.ejb.SessionSynchronization或javax.ejb....

    如何在Web应用中去启动后台的任务

    总结,本文介绍了一种在Web应用中启动后台任务的方法,利用Servlet监听器和Quartz实现任务的自动调度。这种方式使得任务管理和应用的生命周期紧密关联,便于管理和维护。同时,Quartz提供了丰富的调度规则,可以满足...

    Tomcat中用web.xml控制Web应用详解

    监听器可以在 Web 应用启动时执行一些初始化操作。容器将创建 listener 中的类实例,并将其作为监听器。监听器可以在 ServletContext 中注册监听器,以便在特定的生命周期事件中执行操作。 load-on-startup 元素 ...

    Struts2的监听器的使用

    监听器是Servlet容器(如Tomcat)中的特殊Java类,它们实现了特定的监听器接口,并在特定事件发生时被调用。在Struts2中,这些监听器主要用于初始化框架、配置拦截器、管理Action实例等任务。 1. **...

    监听器Listener

    监听器是接口,实现这些接口的类通常需要被添加到特定组件(如Servlet容器、Java Swing GUI组件或Java EE服务器)中以监听和响应特定的事件。 在Spring MVC框架中,监听器同样发挥着关键作用,特别是在Web应用程序...

    Spring的监听器ContextLoaderListener的作用

    ContextLoaderListener 是 Spring 框架中的一种监听器,它的主要作用是启动 Web 容器时,自动装配 ApplicationContext 的配置信息。它实现了 ServletContextListener 接口,在 web.xml 文件中配置这个监听器,启动...

Global site tag (gtag.js) - Google Analytics