Sot*_*lis 12 java web-applications initialization jersey
我读过这个,但我不太明白它是如何工作的.我想在我的Web应用程序启动时加载属性文件并设置我的连接池.显然,我只想在一个地方做一次,所以如果需要我可以改变它.使用常规servlet,我只需将初始化代码放在servlet的init()方法中,但您无法使用Jersey servlet访问它.那我该怎么办?上面链接中的听众如何工作?
Mar*_*nis 39
您需要做的就是编写一个实现ServletContextListener接口的java类.此类必须实现两个方法contextInitialized方法,该方法在首次创建Web应用程序时调用,而contextDestroyed将在销毁时调用.您要初始化的资源将在contextInitialized方法中实例化,并且在contextDestroyed类中释放资源.必须将应用程序配置为在部署时调用此类,该类在web.xml描述符文件中完成.
public class ServletContextClass implements ServletContextListener
{
public static Connection con;
public void contextInitialized(ServletContextEvent arg0)
{
con.getInstance ();
}//end contextInitialized method
public void contextDestroyed(ServletContextEvent arg0)
{
con.close ();
}//end constextDestroyed method
}
Run Code Online (Sandbox Code Playgroud)
web.xml配置
<listener>
<listener-class>com.nameofpackage.ServletContextClass</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
现在,这将使应用程序在部署应用程序时调用ServletContextClass,并在contextInitialized方法中实例化Connection或任何其他资源位置,这与Servlet init方法的作用类似.
| 归档时间: |
|
| 查看次数: |
15891 次 |
| 最近记录: |