2.10.2 配置Listener
2.10.2 配置Listener
配置Listener
只要向web
应用注册Listener
实现类即可,无须配置参数之类的东西,因此十分简单为Web
应用配置Listener
也有两种方式。
- 使用
@Weblistener
修饰Listener
实现类即可。 - 在
web.xml
文档中使用<listener>
元素进行配置。
使用@Weblistener
时通常无须指定任何属性,只要使用该注解修饰Listener
实现类即可向Web
应用注册该监听器。
在web.xml
中使用<listener>
元素进行配置时只要配置如下子元素即可:
listener-class
:指定Listener
实现类。
若将ServletContextlistener
配置在web
容器中,且Web
容器(支持Servlet2.3
以上规范)支持Listener
,则该ServletContextListener
将可以监听Web
应用的启动、关闭。
如果选择web.xml
文件来配置Listener
,则应在web.xml
文档中增加如下配置片段:
1 | <listener> |
上面的配置片段向Web
应用注册了一个Listener
,其实现类为lee.GetConnListener
。当Web
应用被启动时,该Listener
的contextInitialized
方法被触发,该方法会获取一个JDBCConnection
,并放入application
范围内,这样所有JSP
页面都可通过application
获取数据库连接,从而可以非常方便地进行数据库访问。
本例中的ServletContextListener
把一个数据库连接(Connection
实例)设置成application
属性,这样将导致所有页面都使用相同的Connection
实例,实际上这种做法的性能非常差。较为实用的做法是:应用启动时将一个数据源(javax.sql.DataSource
实例)设置成application
属性,而所有JSP
页面都通过DataSource
实例来取得数据库连接,再进行数据库访问,这样就会好得多。关于数据库连接池的介绍请参看疯狂Java
体系的《疯狂Java
讲义》一书的13.8节