在应用的执行过程当中,当应用启动时需要加载一些初始化设置和参数,比如玩家的姓名等等,而当应用关闭后,需要回收所有资源。能实现这两个功能的首选ServletContextListener,这个监听器可以监听servlet上下文(ServletContext)的状态。两个方法如下:
private ServletContext context;
/**
* 应用程序实始化时,加载资源、读取配置、计划任务等。
*
* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
*/
@Override
public void contextInitialized(ServletContextEvent contextEvent) {在这个方法中会定义一些初始化方法,如调用之前读取excel信息生成相应的sql语句并调用mysql命令执行配置表的初始化等方法。
/** * 停止Web服务器时,释放资源、停止计划任务、线程等。 * * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent) */ @Override public void contextDestroyed(ServletContextEvent contextEvent) { context = null; }定义了这两个方法后我们就可以对servletContext进行监听了,不再担心资源内存的浪费。当然需要在配置文件中配置此listener。
<listener>
<listener-class>com.bfgame.go.servlet.ApplicationListener</listener-class>
</listener>