includeディレクティブ

広告

includeディレクティブについて確認していきます。構文は次の通りです。

<%@ include file="relativeURL" %>

includeディレクティブは、このディレクティブを記述した位置に他のHTMLファイルやJSPファイルなどのテキストファイルを読み込みます。例えば元となるJSPファイルと同じディレクトリにある「date_disp.jsp」を読み込みたい場合は次のようになります。

<%@ include file="date_disp.jsp" %>

ファイルを指定する場合に「/」から記述した場合はアプリケーションに設定したコンテキストで指定したドキュメントルートからの絶対パスとなります。またそれ以外の場合はディレクティブを記述しているJSPファイルからの相対パスとなります。

例えばコンテキストファイルが次のようなだった場合で考えて見ます。

<Context path="/hellojsp"
docBase="d:/jsp-sample/hello"/>

そしてアプリケーションのファイル構成を次のようにします。

[D] -- jsp-sample
        |
        +-- hello (アプリケーションのルートディレクトリ)
        |    |
             +-- jsp
             |     |
             |     +-- (hello.jsp)
             |
             +-- include
             |     |
                   +-- (date_disp.jsp)

この場合に、「hello.jsp」ファイル内から「date_disp.jsp」ファイルを読み込むには次のどちらかの記述で行います。

<%@ include file="/include/date_disp.jsp" %>
<%@ include file="../include/date_disp.jsp" %>

サンプルプログラム

それでは実際に試してみます。今までも使っていたサンプルプログラムの中で日付を表示させている部分を外部ファイルに分離し読み込んでみます。

コンテキストファイルは今までと同じで次のようにします。

<Context path="/hellojsp"
docBase="d:/jsp-sample/hello"/>

JSPページは次のようになります。

hello3.jsp

<%@ page contentType="text/html;charset=Shift_JIS" %>

<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>

<%@ include file="date_disp3.jsp" %>

</body>
</html>

date_disp3.jsp

<%@ page import="java.util.Date" %>

<%
out.println(new Date());
%>

この2つのJSPページは同じディレクトリ内に置いておきます。

[D] -- jsp-sample
        |
        +-- hello
        |    |
             +-- (hello.jsp)
             |
             +-- (date_disp3.jsp)
             |

それでは「http://localhost/hello/hello3.jsp」にブラウザからアクセスします。

includeディレクティブ

上記のように表示されれば無事に動いています。今回はJSPページを読み込みましたが、HTMLページやテキストファイルを読み込むこともできます。単に外部に用意されているテキストで記述されたファイルの内容を、指定した位置に読み込むだけのものです。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)