首页 > 编程语言 >Java中ServletContextListener监听器详解

Java中ServletContextListener监听器详解

时间:2022-10-29 20:23:56浏览次数:51  
标签:ServletContextEvent Java 监听器 basicDataSource void ServletContextListener public

转载于http://www.51gjie.com/javaweb/875.html

Java中ServletContextListener监听器详解

ServletContextListener如果在web.xml中配置了这个监听器,那么启动容器时,就会默认执行它实现的方法,它用于对Servlet整个上下文进行监听(创建、销毁)。

源码

public abstract interface ServletContextListener extends EventListener{  
    public abstract void contextInitialized(ServletContextEvent paramServletContextEvent);  
    public abstract void contextDestroyed(ServletContextEvent paramServletContextEvent);  
}

方法

public void contextInitialized(ServletContextEvent sce);//上下文初始化
public void contextDestroyed(ServletContextEvent sce);//上下文销毁
public ServletContext getServletContext();//ServletContextEvent事件:取得一个ServletContext(application)对象

例子

//使用监听器对数据库连接池DataSource进行初始化 
import javax.servlet.ServletContext;     
import javax.servlet.ServletContextEvent;     
import javax.servlet.ServletContextListener;     
import org.apache.commons.dbcp.BasicDataSource;            
public class ListenerTest implements ServletContextListener{       
   // 应用监听器的销毁方法     
   public void contextDestroyed(ServletContextEvent servletContextEvent) {     
        ServletContext servletContext = servletContextEvent.getServletContext();  
        // 在整个web应用销毁之前调用,将所有应用空间所设置的内容清空  
        servletContext.removeAttribute("dataSource");  
        System.out.println("销毁工作完成...");    
   }     
    // 应用监听器的初始化方法     
    public void contextInitialized(ServletContextEvent servletContextEvent) {        
        // 通过这个事件可以在整个web应用下面启动的时候做一些初始化的内容添加工作     
        ServletContext servletContext = servletContextEvent.getServletContext();    
        // 设置一些基本的内容;比如一些参数或者是一些固定的对象     
        // 创建DataSource对象,连接池技术 dbcp     
        BasicDataSource basicDataSource = new BasicDataSource();   
        basicDataSource.setDriverClassName("com.jdbc.Driver");   
        basicDataSource.setUrl("jdbc:mysqlocalhost:3306/");   
        basicDataSource.setUsername("root");     
        basicDataSource.setPassword("root");     
        basicDataSource.setMaxActive(10);//最大连接数     
        basicDataSource.setMaxIdle(5);//最大管理数     
        servletContext.setAttribute("dataSource", basicDataSource);     
        System.out.println("应用监听器初始化工作完成...");     
        System.out.println("已经创建DataSource...");    
    }     
}
//web.xml中配置监听器   
<listener>     
    <listener-class>com.ycq.ListenerTest</listener-class>     
</listener> 

总结

ServletContextListener是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。

标签:ServletContextEvent,Java,监听器,basicDataSource,void,ServletContextListener,public
From: https://www.cnblogs.com/shigongp/p/16839566.html

相关文章

  • JAVAWeb - HttpServletResponse
    HttpServletResponseweb服务器接收到客户端的Http请求,针对这个请求,分别创建了一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse如果要获取客户端......
  • JavaScript中window.onload和document.onload有什么区别?
    JavaScript中window.onload和document.onload有什么区别?document.onload在加载图像和其他外部内容之前将其触发。文件。在window.onload之前触发onload事件。window......
  • 南昌航空大学 软件学院 pta Java 期中考试 蔡珂
    两节课的期中考试啊题目难度不高基本就是按图说话如果不错太多bug的话时间应该很充足的很开心的是我没出啥bug除了第一题之外都是一遍过的题目列表目录题目列表7-1......
  • 从新开始学JAVA - 标识符5
    标识符Java的所有组成部分都需要名字,类名、变量名、方法名等统称为标识符。所有的标识符的首个字符必须是字母(A-Z或者a-z)或者美元符号($)或者下划线(_)首字符后,必须是字母(A......
  • Eclipse 给 Java 应用创建 Run configuration 时找不到 main type 的错误消息
    我在Eclipse里选中com文件夹下选中一个.java文件,这个Java文件实现了​​publicstaticvoidmain(String[]args)​​方法,我想作为一个Java应用直接运行它。选......
  • java常用API--->Math数学工具
    介绍Math类是java.lang包中的类,它支持算术运算如平方根,计算绝对值等。算术计算Math.sqrt(Number);//计算Number的平方根Math.cbrt(Number);//计算Number的立方根Math.......
  • 使用JMeter的条件--安装Java
    首先下载JMeter,网址:https://jmeter.apache.org/dow...下载Binaries版,即可执行版,已编译好,下载解压就可以用。Source版是源代码版,需要自己编译成可执行文件。tgz压缩格式......
  • JavaScript 获取和设置剪贴板中的内容
    通过JavaScript在浏览器中获取或设置剪贴板中的内容,常用于一键复制或使用网页油猴复制限制文本使用execCommand(已弃用)写入文本到剪贴板document.onclick=func......
  • javaweb期中考试
     校园社团活动管理系统(20分)1、项目需求:校园社团作为高校课外活动的重要组成部分,发展十分迅速,也受到越来越多学生的欢迎,社团规模、数量等都在日益增长,社团活动也更为多......
  • JAVA-Random猜数字游戏
    packagecom.itheima;importjava.util.Random;importjava.util.Scanner;publicclassScanner04{publicstaticvoidmain(String[]args){//使用......