![](/fjava/javafaq/index/javafaq_gra1.jpg) |
<%@ include %> と<jsp:include>の違い
テンアートニ 中越智哉
2001/6/27
|
|
JSPには、ページのインクルードを実現するためのタグが2つ用意されています。<%@ include %>と<jsp:include>です。一見しただけでは記法が異なるだけで、動作は同じように思えますが、実はこの2つのタグには動作に明らかな違いがあります。
■<%@ include %>の場合
このタグによって指定されたファイルは、JSPがサーブレットのファイルに変換される前に、JSPの一部としてインクルードされます。そして、インクルードされたものを含めてサーブレットに変換されてから実行されます。このタグでインクルードされたファイルが更新されても、JSP自体が更新されなければJSPに更新は反映されません。
![](jsp5.gif) |
インクルードされるファイル(下方)は、その内容が更新されても実行時にJSP側に反映されない |
■<jsp:include>の場合
このタグは、指定されたファイルをJSPの一部としてインクルードするのではなく、指定されたURLにリクエストを送信し、その応答内容を動的にリクエスト元に挿入して表示します。インクルードされるページとインクルードを行うJSPとは独立したページとして存在するため、インクルードされたファイルが更新されれば、元のJSP自体が更新されていなくても、動的に更新内容が結果に反映されます。
![](jsp6.gif) |
指定されたURLに対してリクエストを行い、その結果をリクエスト元に挿入して表示するため、常に更新が反映される |