欢迎来到知了堂!
联系电话:知了堂-电话号码 028-62016472

Java Web之Servlet监听器(Listener)-知了堂

Java Web之Servlet监听器(Listener)

  1. Listener的作用:

  做一些初始化的内容添加工作,设置一些基本的内容,比如是一些参数或是一些固定的对象等。

  2. Listener监听对象:

  ServletContext:application,整个应用只存在一个

  HttpSession:  session,针对每一个对话

  ServletRequest:request,针对每一个客户请求

  2.1按照监听的对象划分

  (1)用于监听应用程序环境对象(ServletContext)的事件监听器,实现ServletContextListener、ServletContextAttributeListener接口。

  (2)用于监听用户会话对象(HttpSeesion)的事件监听器,实现HttpSessionListener、HttpSessionAttributeListener接口。

  (3)用于监听请求消息对象(ServletRequest)的事件监听器,实现ServletRequestListener、ServletRequestAttributeListener接口。

Java Web之Servlet监听器(Listener)

 

  3. Listener的开发流程:

  1、创建一个实现监听器接口的类

  2、配置web.xml文件,注册监听器

             <listener>
                <listener-class>完整类名</listener-class>
              </listener>

  3.1实现三种监听对象的接口。

  (1)ServletContext的创建和销毁:contextInitialized方法和contextDestroyed方法

//实现ServletContextListener接口
public class MyApplicationListener implements ServletContextListener{
 public void contextDestroyed(ServletContextEvent arg0){
   //应用销毁时的代码
}
public void contextInitialized(ServletContextEvent arg0){
//应用初始化时代码
}
}

  (2)主要用途:作为定时器、加载全局属性对象、创建全局数据库连接、加载缓存信息等

  (3)在web.xml中可以配置项目初始化信息,在contextInitialized方法中进行启动

  <context-param>

  <param-name>属性名</param-name>

  <param-value>属性值</param-value>

  </context-param>

  (1)HttpSession的创建和销毁:sessionCreated和sessionDestroyed方法。

//实现HttpSessionListener接口
 
public class MySessionListener implements HttpSessionListener{
 
  public void sessionCreated( HttpSessionEvent arg0){
 
        //会话创建时的代码
 
        …….
 
}
 
public void sessionDestroyed(HttpSessionEvent arg0){
 
//会话销毁时的代码
 
……
 
}
 
}

  (2)主要用途:统计在线人数、记录访问日志等

  (3)web.xml配置session超时参数,单位:分,session超时的时间并不是精确的

  <session-config>

  <session-timeout>10</session-timeout>

  </session-config>

  (1)ServletRequest的创建和销毁:requestInitialized和requestDestroyed方法。

 //实现HttpRequestListener接口
public class MyRequestListener implements ServletRequestListener{
  public void requestDestroyed( ServletRequestEvent arg0){
//请求销毁时的代码
………
}
  public void requestInitialized( ServletReuqestEvent arg0){
     //请求销毁时的代码
}
}

  (2)主要用途:读取request参数,记录访问历史

  4. 监听内容:

  创建、销毁、属性改变事件

  5. 监听作用:

  可以在事件发生前、发生后进行一些处理,一般可以用来统计在线人数和在线用户、统计网站访问量、系统启动时     初始化信息等。

  6.监听器的启动顺序:

  按照web.xml的配置顺序来启动

  加载顺序:监听器>过滤器>Servlet


       版权声明:本文来源于网络,由知了堂搜集整理,仅供大家学习