- PR -

includeディレクティブとincludeアクションについて

1
投稿者投稿内容
みじ
会議室デビュー日: 2004/05/22
投稿数: 9
投稿日時: 2005-08-16 14:20
いつもお世話になっております。
今回はJSPのincludeについて、お伺いしたいと思います。

参照元の記事を参考に、includeディレクティブとincludeアクションの違いについて調べています。
ファイルがincludeされるタイミングは理解でき、実際にJSPから変換された後のJavaファイルを見て、両者の違いを知ることはできました。

そこで、同じ記事の中にあるincludeディレクティブとincludeアクションの違いを比較するためのコードを作成してみました。
「include.jsp(インクルードされるファイル)」と「5-1.jsp(includeディレクティブ利用)」と「5-2.jsp(includeアクション利用)」の3つを作成し、それぞれ一度実行させた後、include.jspの内容を変更し、再度実行しました。
すると、両方ともinclude.jspの変更後の内容が表示されたのです。
(エラーなどは何も出ていません)

具体的には・・・
1.3つのファイルを作成、配置。
2.サーバーを起動し、ブラウザを2個立ち上げ、それぞれで5-1.jspと5-2.jspを実行
 →この時点では、両方とも「Hello,World」と表示される
3.include.jspの内容を変更(「world」という文字列を「jsp」に変更)
4.サーバーは再起動せずに、ブラウザの更新をかける
5.両方とも「Hello,jsp」と表示される

サーバーの問題かも?と思い、以下2つの環境で試していますが、両方とも同じ結果でした。
・Tomcat4.1.30+J2SDK1.4+テキストエディタ
・Tomcat5.0.27+JDK5.0+Eclipse3.0+TomcatプラグインV3

また、インクルードされるファイルを「include.html」に変更し、静的なページにしても、同様の結果となりました。

通常、includeディレクティブは、「元のJSPファイルの更新日付が更新されていなかったら、includeするファイルだけを変更しても、変更は反映されない」といわれていますが、実際はどうなっているのでしょうか?
Tomcatの設定を変更しないといけないのでしょうか?

ご教示のほど、よろしくお願いいたします。
koe
大ベテラン
会議室デビュー日: 2003/07/13
投稿数: 198
投稿日時: 2005-08-16 15:09
Tomcat4.1から、includeディレクティブを使いコンパイル時にインポートしたページも、インポートされたページの更新を検知して再コンパイルされるようになりました。
詳しくはこちらをご覧ください。

http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jasper-howto.html
http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/jasper-howto.html

参照元の記事は古いですからね。まだTomcat4どころか3.2の時代のものです。
古いバージョン(Tomcat3.x系)ではその記事通りに動きますが、現在のバージョンではみじさんが確認したとおりの動作になります。
みじ
会議室デビュー日: 2004/05/22
投稿数: 9
投稿日時: 2005-08-16 15:35
koe様、ご返信ありがとうございます。
jakartaのページを見て、納得しました。

参照元の記事が古いことには、気づいておりませんでした。申し訳ございません。

ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)