いくつかの jsp ページ、サーブレット、および pojo を含む単純な Web アプリケーションがあります。リクエストが行われる前に接続プールを初期化したいと考えています。これを行う最善の方法は何ですか?アプリが最初にデプロイされたときに実行できますか?それとも、最初のリクエストが来るまで待つ必要がありますか?
Deano
質問する
1804 次
2 に答える
9
ServletContextListener を使用し、web.xml で適切に宣言します。この方法は、起動サーブレットよりも適しています。それはより組織化されており、あなたの意図は明らかです。また、リクエストの前に実行されることが保証されています。また、プールをクリアするためのシャットダウン フックも提供します。
たとえば、これは私の web.xml からのスニペットです。
<listener>
<listener-class>
com...ApplicationListener
</listener-class>
</listener>
クラス自体のコード スニペットを次に示します。サーバー アプリケーションに伝播しないように例外をキャッチし、役立つログ メッセージを提供してください。これらは、アプリケーションをトレースするときに役立ちます。
public class ApplicationListener implements ServletContextListener {
private ServletContext sc = null;
private Logger log = Logger
.getLogger(ApplicationListener.class);
public void contextInitialized(ServletContextEvent arg0) {
this.sc = arg0.getServletContext();
try {
// initialization code
} catch (Exception e) {
log.error("oops", e);
}
log.info("webapp started");
}
public void contextDestroyed(ServletContextEvent arg0) {
try {
// shutdown code
} catch (Exception e) {
log.error("oops", e);
}
this.sc = null;
log.info("webapp stopped");
}
}
于 2008-11-22T16:23:39.897 に答える
0
接続プールを初期化するための基本的な起動サーブレットはどうですか?
于 2008-11-22T15:59:48.480 に答える