- 浏览: 800582 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (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>
有某些项目当中,可能会出现需要先判断系统数据库或条件是否通过。如果通过就启动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监听器是Java Web开发中一个强大的工具,它们允许我们在特定事件发生时执行代码,如在应用启动时初始化自定义容器。通过这种方式,我们可以更灵活地控制Web应用的行为,实现更高效的资源管理和应用程序...
1. **监听器**:通过`ServletContextListener`接口来监听Web容器的启动和关闭事件。 2. **定时器**:使用`java.util.Timer`类来实现任务的定时调度。 3. **自定义任务**:定义一个接口或抽象类来表示具体要执行的...
52、尚硅谷_SpringBoot_web开发-外部Servlet容器启动SpringBoot应用原理 53、尚硅谷_SpringBoot_Docker-简介 54、尚硅谷_SpringBoot_Docker-核心概念 55、尚硅谷_SpringBoot_Docker-linux环境准备 56、尚硅谷_...
Jetty 是Servlet规范的实现者,支持Servlet 3.x 特性,如异步处理、过滤器、监听器等。同时,Jetty 还提供了对WebSocket协议的支持,使得实时通信成为可能。 ### 5. 高级特性 - **连接池**: Jetty 内置了连接池...
JavaProject工程通常是一个标准的Java应用程序,主要包含源代码、资源文件等,而Web项目则是构建Web应用的基础,它需要额外的配置和结构以支持动态网页(如JSP)、Servlet以及Web容器(如Tomcat)的运行。...
节点用于配置Web事件监听器,用于监听Web容器中发生的事件,如ServletContext的创建和销毁事件。当Web容器创建ServletContext时,它还会创建节点中指定的类的实例。在Web应用部署描述文件web.xml中,元素指定了一个...
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定的Servlet容器事件发生时执行相应的代码。在本文中,我们将深入探讨Servlet监听器的工作原理、配置和使用,结合具体的"web.xml"配置以及JSP页面的...
50、_SpringBoot_web开发-嵌入式Servlet容器启动原理 1 [% c- f9 [+ \* l 51、_SpringBoot_web开发-使用外部Servlet容器&JSP;支持 52、_SpringBoot_web开发-外部Servlet容器启动SpringBoot应用原理 53、_...
2. **Servlet监听器**: 在Web开发中,特别是使用Servlet技术时,监听器(如ServletContextListener、ServletRequestListener和HttpSessionListener)用于监听Servlet容器的特定事件。例如,ServletContextListener...
在Web开发中,监听器(Listener)是一种关键的组件,它们是Java Servlet规范的一部分,用于监控和响应特定的Servlet容器事件。本学习笔记主要聚焦于理解监听器的概念、作用以及如何在实际应用中使用它们。 一、监听...
Web容器中实例化Spring相关配置解析需要在web.xml文件中配置相应的参数,包括ContextLoaderListener监听器和contextConfigLocation参数。这些配置将决定Spring容器的实例化过程。 此外,为了更好地理解Spring容器的...
Servlet监听器技术是Java Servlet规范中的一项重要特性,它允许开发者在特定的Servlet容器事件发生时执行自定义的代码逻辑。这些事件可以包括Web应用程序的初始化、终止,或者是Servlet或Servlet上下文...
3. **EJB监听器**:在Enterprise JavaBeans(EJB)中,监听器主要是用于监听EJB容器的事件,例如ejbCreate、ejbRemove等。这些监听器通过实现特定的EJB接口,如javax.ejb.SessionSynchronization或javax.ejb....
总结,本文介绍了一种在Web应用中启动后台任务的方法,利用Servlet监听器和Quartz实现任务的自动调度。这种方式使得任务管理和应用的生命周期紧密关联,便于管理和维护。同时,Quartz提供了丰富的调度规则,可以满足...
监听器可以在 Web 应用启动时执行一些初始化操作。容器将创建 listener 中的类实例,并将其作为监听器。监听器可以在 ServletContext 中注册监听器,以便在特定的生命周期事件中执行操作。 load-on-startup 元素 ...
监听器是Servlet容器(如Tomcat)中的特殊Java类,它们实现了特定的监听器接口,并在特定事件发生时被调用。在Struts2中,这些监听器主要用于初始化框架、配置拦截器、管理Action实例等任务。 1. **...
监听器是接口,实现这些接口的类通常需要被添加到特定组件(如Servlet容器、Java Swing GUI组件或Java EE服务器)中以监听和响应特定的事件。 在Spring MVC框架中,监听器同样发挥着关键作用,特别是在Web应用程序...
ContextLoaderListener 是 Spring 框架中的一种监听器,它的主要作用是启动 Web 容器时,自动装配 ApplicationContext 的配置信息。它实现了 ServletContextListener 接口,在 web.xml 文件中配置这个监听器,启动...