17.8.9 JSPのリロード
JSPを更新した場合には,JSPの再コンパイル,またはクラスファイルの監視によって更新が検知され,JSPがリロードされます。JSPのリロード方法を次に示します。
-
JSPの再コンパイルによるリロード
Webコンテナは,ロードされたJSPファイル,タグファイル,JSPファイルまたはタグファイルが依存するファイルが更新されているかどうかをチェックし,更新日時がロード時と異なる場合には,再コンパイルしてJSPをリロードします。
更新を検知してJSPの構成ファイル更新用インターバルを経過したあとに,ファイルを再コンパイルします。コンパイルが完了し,処理中のリクエストがなくなったことを検知したら,リロード処理を開始します。
-
クラスファイルの監視によるリロード
Webコンテナは,WebコンテナにロードされたJSPファイルから生成されたクラスファイルが更新されているかどうかをチェックし,更新日時がロード時と異なる場合に,JSPをリロードします。
更新を検知してJSPの構成ファイル更新用インターバルを経過したあとに,処理中のリクエストがなくなったことを検知したら,リロード処理を開始します。
クラスファイルの更新のタイミングは次のどちらかです。
-
JSP事前コンパイルのコマンドを実行し,JSPファイルをコンパイルしてクラスファイルを生成したとき
-
JSP事前コンパイルでコンパイルされたクラスファイルを,JSPワークディレクトリにコピーして上書きしたとき
JSPの事前コンパイルについては,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.5 JSP事前コンパイル機能とコンパイル結果の保持」を参照してください。
-
JSPのリロード方法の差異を次の表に示します。
項目 |
JSPの再コンパイルによるリロードの場合 |
クラスファイルの監視によるリロードの場合 |
---|---|---|
JSPの事前コンパイル機能使用の有無 |
JSP事前コンパイル機能は無効となります。 |
JSP事前コンパイル機能は有効となります。 |
更新検知の対象ファイル※ |
|
|
更新検知後の処理 |
ファイルをコンパイルし,リロードします。 |
クラスファイルをリロードします。 |
どちらのリロード方法の場合でも,ファイルの更新を検知するために,JSPの更新検知インターバルとJSPの構成ファイル更新用インターバルを指定できます。更新検知インターバルについては,「17.8.6 J2EEアプリケーションの更新検知インターバル」を参照してください。構成ファイル更新用インターバルについては,「17.8.7 J2EEアプリケーションの構成ファイル更新用インターバル」を参照してください。
- 注意事項
-
ロード済みのJSPの破棄のタイミング,およびJSPのリロード機能の監視対象について
Webアプリケーションのリロード機能とJSPのリロード機能を併用した場合にWebアプリケーションのリロード機能が実行されたとき,ロード済みのJSPが破棄されます。また,JSPのリロード機能の監視対象はWebアプリケーションのリロード機能実行時にロードされたJSPファイルだけになります。
WebコンテナおよびWebアプリケーションの再起動をしたとき,ロード済みのJSPが破棄されます。また,JSPのリロード機能の監視対象はWebアプリケーションの開始後にロードされたJSPファイルだけになります。