按监听的事件划分
监听域对象自身的创建和销毁的事件监听器
监听域对象中的属性的增加和删除的事件监听器
监听绑定到HttpSession域中的某个对象的状态的事件监听器
域对象的对应监听接口
ServletContext— ServletContextListener
HttpSession— HttpSessionListener
ServletRequest— ServletRequestListener
在web.xml中配置ServletContext初始化参数
获取ServletContext初始化参数
1.监听servletcontext对象的销毁创建的ServletContextListener对象
监听域对象的创建和销毁的三个监听器
2.按照监听的事件划分
监听器的分类:
1.按监听对象划分:
监听器的分类
按监听的对象划分
【a】用于监听应用程序环境对象(ServletContext)的事件监听器。
【b】用于监听用户会话对象(HttpSession)的事件监听器
【c】用于监听请求消息对象(ServletRequest)的事件监听器
按监听的事件划分
【a】监听域对象自身的创建和销毁的事件监听器
定义:监听的对象包括ServletContext、HttpSession、ServletRequest,Servlet规范中定义了三个接口ServletContextListener、HttpSessionListener、ServletRequestListener来监听这三个对象的创建及销毁事件。
ServletContext的创建及销毁:ServletContext实现了ServletContextListener接口来监听该对象的创建及销毁事件,一个Web应用下可以创建多个ServletContextListener,但是一个Web应用中只有一ServletContext对象,ServletContextListener对象的contextInitialized方法和contextDestroyed方法(主要用于数据库连接关闭时,可以释放一些资源,以免过度的占用),方法里的参数ServletContextEvent可以获取ServletContext以及获取一些初始化参数。
ServletContextListener主要用途:做一些定时器:可以加载一些全局属性对象,可以创建全局的数据库连接,以及加载一些缓存信息。
getServletContext():通过参数ServletContextEvent获取ServletContext对象,并且可以往全局变量ServletContext中存入变量,通过setAttribute方法,这样就可以在其他地方进行获取。
getInitParameter():通过ServletContext对象获取初始化参数(初始化参数在web.xml中进行配置)。
【b】监听域对象中的属性的增加和删除的事件监听器
【c】监听绑定到HttpSession域中的某个对象的状态的事件监听器
监听器分类: 1.按监听器的对象划分: a 用户监听应用程序环境对象(ServletContext)的时间监听器 b 用于监听用户会话对象(HttpSession)的事件监听器 c 用于监听请求消息对象(ServletRequest)的事件监听器。 2.按事件划分 a 监听域对象自身的创建和销毁的事件监听器 b 监听域对象中的属性的增加和删除的事件监听器 c 监听绑定到HttpSession域中的某个对象的状态的事件监听器 ServletContext的创建和销毁 实现ServletContextListener接口用于监听它的创建和销毁事件 一个项目中可以有多个ServletContextListener,但是只有一个ServletContext对象 有两个事件处理方法: (1)contextInitialized方法: public void contextInitialized( ServletContextEvent sce ) ServletContext创建时调用 参数 ServletContextEvent 事件对象,可以获取ServletContext对象以及一些初始化参数 例如: 1.获取ServletContext对象: ServletContext sc = sce.getServletContext(); 获取初始化参数:sc.getInitParmeter("参数名称"); 初始化参数在web.xml中配置: <context-param> <param-name>initParam</param-name> <param-value>imooc</param-value> </context-param> 2.设置ServletContext属性:sc.setAttribute("name",obj); 然后在其它地方获取getAttribute("name") (2)contextDestroyed方法: public void contextDestroyed( ServletContextEvent sce ) ServletContext销毁时调用 主要用于数据库链接关闭时释放一些资源,以免过度的占用。
监听器的分类:
按监听器的事件划分01
监听器的分类——按监听器的对象划分
arfhgfdh
监听器的分类1
监听器的分类
@Listener---ServletContext的事件监听器
创建和销毁
实现ServletContextListener接口用于监听它的创建和销毁事件
一个项目中可以有多个ServletContextListener,但是只有一个ServletContext对象。
有两个事件处理方法:
contextInitialized方法:
public void contextInitialized( ServletContextEvent sce )
ServletContext创建时调用,获取ServletContext对象和初始化参数。
contextDestroyed方法:
public void contextDestroyed( ServletContextEvent sce )
ServletContext销毁时调用,数据库链接关闭时释放一些资源,以免过度的占用。
主要用途:
定时器
全局属性对象
例如:
1.获取ServletContext对象: ServletContext sc = sce.getServletContext();
获取初始化参数:sc.getInitParmeter("参数名称");
初始化参数在web.xml中配置:
<context-param> <param-name>initParam</param-name> <param-value>imooc</param-value> </context-param>
2.设置ServletContext属性:sc.setAttribute("name",obj);
然后在其它地方获取getAttribute("name")
@Listener---监听器分类
1.按监听器的对象划分
a 用户监听应用程序环境对象(ServletContext)的事件监听器
b 用于监听用户会话对象(HttpSession)的事件监听器
c 用于监听请求消息对象(ServletRequest)的事件监听器。
2.按事件划分
a 监听域对象自身的创建和销毁的事件监听器
b 监听域对象中的属性的增加和删除的事件监听器
c 监听绑定到HttpSession域中的某个对象的状态的事件监听器
ServletContext的创建与销毁
监听域对象自身的创建和销毁的事件监听器
@监听器分类: 1.按监听器的对象划分: a 用户监听应用程序环境对象(ServletContext)的事件监听器 b 用于监听用户会话对象(HttpSession)的事件监听器 c 用于监听请求消息对象(ServletRequest)的事件监听器 2.按事件划分 a 监听域对象自身的创建和销毁的事件监听器 b 监听域对象中的属性的增加和删除的事件监听器 c 监听绑定到HttpSession域中的某个对象的状态的事件监听器。对ServletContext的监听:ServletContextListener<br> 有两个方法:初始化方法和销毁方法<br> 用途:定时器 加载全局属性
@FirstListener.java public class FirstListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println("contextDestroyed"); } public void contextInitialized(ServletContextEvent arg0) { String user = arg0.getServletContext().getInitParameter("user"); System.out.println("contextInitialized:" + user); } } @web.xml <context-param> <param-name>user</param-name> <param-value>admin</param-value> </context-param>
3
3