Servlet事件监听器

来源:互联网 发布:刻相片礼物淘宝 编辑:程序博客网 时间:2024/05/16 05:01

 

ServletContextListener事件监听器对象的contextInitialized()方法和contextDestoryed方法来控制数据库的连接和关闭来形象的说明了Servlet事件处理器的用处,有助于理解其原理。


ServletContextListener接口
    它用于监听代表Web应用程序的ServletContext对象的创建和销毁的事件,当在Web应用程序中注册一个或多个实现了ServletContextListener接口的事件监听器后,Web容器在创建和销毁ServletContext对象时就会产生一个ServletContextEvent事件对象,接着依次调用每个ServletContext事件监听器中相应的处理方法,并将ServletContextEvent事件对象传递给这些方法。在

ServletContextListener接口中定义了两个事件处理方法,contextInitialized()和contextDestroyed()方法,他们分别用于处理ServletContext对象的创建事件和销毁事件。
    contextInitialized()方法
    public void contextInitialized(ServletContextEvent sce)
    当ServletContext对象创建时,web容器会调用ServletContextListener的

contextInitialized方法,contextInitialized方法接受到一个ServletContextEvent对象的参数,通过这个参数可以获得当前被创建的

ServletContext对象。
     contextDestroyed方法
     public void contextDestroyed(ServletContextEvent sce)
     当ServletContext对象销毁时,web容器会调用ServletContextListener的

contextDestoryed方法,并将ServletContextEvent对象传递给contextDestoryed方法。

 

    可以利用ServletContextListener事件监听器的编写一些实现特殊功能的程序,例如创建全局共享的数据库链接。
    1.当Web应用程序被加载时,其对应的ServletContext对象被创建,Web服务器将调用ServletContextListener事件监听器对象的contextInitialized()方法,在此方法中编写获得数据库链接的代码,并把这个获得连接的对象保存到ServletContext对象中,所有的Servlet程序和JSP页面中就可以直接从ServletContext对象中取出被保存的链接对象来访问数据库,避免每个Servlet程序和JSP页面都去创建新的数据库链接,提高了程序运行效率。
   2.当Web应用程序被卸载时,其对应的ServletContext对象被销毁,Web服务器将调用web容器会调用ServletContextListener监听器对象的contextDestoryed方法,在此方法中编写关闭数据库连接的代码,这样就可以确保数据库链接对象在Web应用程序卸载时被销毁,从而避免浪费数据库链接资源的现象。

 

HttpSessionListener接口
    它用于监听Web应用程序中的用户会话对象HttpSession的创建和销毁事件,当在Web应用程序中注册一个或多个实现了HttpSessionListener接口的事件监听器后,Web容器在创建或销毁每个HttpSession对象时就会产生一个HttpSessionEvent对象,然后依次调用每个HttpSession事件监听器中的相应处理方法,并将HttpSessionEvent对象传递给这些方法,在HttpSessionListener接口中定义了两个事件处理方法:sessionCreated()和sessionDestroy(),他们分别在HttpSession对象被创建和销毁时被调用。

 

HttpRequestListener接口
它用于监听Web应用程序中的ServletRequest对象的创建和销毁事件,其原理类似月前两个接口。HttpRequestListener接口中定义了两个方法,requestInitialized()和requestDestroy()方法,他们分别用于处理ServletRequest对象的创建事件和销毁事件。

原创粉丝点击