検索

キーワード


目次

【Java】JSPのディレクティブ

  • 公開日:2020-10-21 16:32:14
  • 最終更新日:2021-01-19 14:36:38
【Java】JSPのディレクティブ

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

こんにちは。エンジニアの新田です!

ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。

今回は、JSPのディレクティブについて紹介します。

Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!

関連記事:【Java】JSPの基本的な構文 【Java】JSPでタグライブラリを使う(JSTL)


JSPのディレクティブ

ディレクティブではJSPページの文字コード指定や、外部ファイルの読み込みなど、JSPページに関する制御文を記述する事ができます。


pageディレクティブ


【頻繁に使われる属性】


import

JSPページでJavaのクラスをimportする場合に使います。(Javaのimport文と同じ役割)

<%@ page import="パッケージ名.クラス名" %>
<%@ page import="パッケージ名.*" %>
<%@ page import="パッケージ名.*, パッケージ名.*" %>  ← カンマ区切りで複数指定することも可能

なお、以下のパッケージはデフォルトでインポートされているためインポートする必要はありません。

java.lang.* 
javax.servlet.* 
javax.servlet.jsp.* 
javax.servlet.http.*


■importの例

<%@ page contentType="text/html;charset=UTF-8" import="java.util.Date" %>

<html>
・・・
    <body>
        <% out.println("現在日時は、" + new Date()); %>
    </body>
</html>



session

このページでの暗黙セッションオブジェクトを使用するかどうかを指定するします。(デフォルトは使用する=true)

<%@ page session="true/false" %>


■trueが指定された場合(暗黙のセッションオブジェクトを使用する)※デフォルト

  • セッションが開始されていなければ、新規に生成する。
  • 継続しているセッションがあれば、それを利用する。

■falseが指定された場合(暗黙のセッションオブジェクトを使用しない)

  • 暗黙セッションオブジェクトに関する操作を行った場合、コンパイルエラーになる。



contentType

JSPページのMIMEタイプとエンコーディングを指定します。(省略した場合は、デフォルトで「ISO-8859-1」が使用されます)

※日本語を使用する場合は、文字化けを防ぐためにエンコーディングを必ず設定する必要があります。

<%@ page session="MIMEタイプ;charset=エンコーディング" %>

■importの例

<%@ page contentType="text/html;charset=UTF-8" %>

<html>
...




【その他の属性】


language

JSPページで使用するスクリプト言語を指定します。

(現状ではJavaしか指定できないため設定不要、デフォルト値として「java」が設定される)


extends

JSPページを他のクラスのサブクラスにする場合、スーパークラスを指定します。


isELIgnored

EL式を無効にするかどうかを指定する(デフォルトは、有効=false)。

trueを設定するとEL式が無効になり、falseを設定すると有効になります。


pageEncoding

JSPページのエンコーディングを指定します。

デフォルトは「contentType」で指定した文字コードが使用されます。


errorPage

エラーが発生した場合に表示するページを指定します。指定しない場合はデフォルトのエラーページが表示されます。


isErrorPage

JSPページがエラー表示用のページであることを指定します。(デフォルトは、false = エラー表示用ページではない)

「errorPage」でエラー表示先を指定した場合には、「isErrorPage」を「true」に設定する必要があります。

「true」が指定された場合、暗黙オブジェクトの「exception」が利用可能になります。


buffer

JSPページから出力されるデータをバッファしてからクライアントに返すかを指定します。(デフォルトは「8kb」)

バッファしない場合は、「none」を指定する。「8kb」のように容量を指定すると、出力データを指定容量までバッファしてからクライアントにまとめて送信します。


autoFlush

buffer(バッファ)を使用したときに指定の容量を超える出力データがあった場合の処理を指定します。(デフォルトは「true」)

「true」の場合は指定容量に達したときに自動的にクライアントにデータを送信します。

「false」の場合は指定容量に達したときに例外を発生させます。


isThreadSafe

スレッドセーフで実行するかどうかを指定します。(デフォルトは「true」)

「true」の場合は複数のリクエストが合った場合に同時に実行することを許可します。

「false」の場合は複数リクエストを1つずつ順次処理します。


info

JSPページに関する任意の情報を記述します。製作者や作成年月日など、どんなデータでも構いません。




includeディレクティブ

includeディレクティブを記述した位置に他のHTMLファイルやJSPファイルなどのファイルを読み込み、ソースコードを挿入します。

サーブレットへに変換する前に、指定されたファイルの内容を挿入することで、全体をひとつのJSPサーブレットに変換します。

<%@ include file="ファイル名" %>
  • ファイルの指定方法は、「/」から記述した場合は、ドキュメントルートからの絶対パスを記述します。
  • それ以外の場合は、includeディレクティブを記述したJSPファイルからの相対パスを記述します。


■includeの例

ディレクトリ構成は以下の通りとします

[D] -- webContents (ドキュメントルート)
        |
        +-- jsp
        |    |
             +-- hello.jsp
             |
             +-- include
             |     |
                   +-- (includetarget.jsp)


hello.jsp

<html>
    <head></head>
    <body>
        <h1>include directive</h1>
        <%@ include file="include/includetarget.jsp" %>
    </body>
</html>

includetarget.jsp

<h4>include target</h4>


実行結果

実行結果




taglibディレクティブ

JSPでは定期的に使われるような処理をまとめてタグと呼ばれるものに登録しておく事が出来ます。

そのタグを集めた物がタグライブラリで、標準タグライブラリと自分で作成したタグを集めたカスタムタグライブラリがあります。

このタグライブラリを使うときにtaglibディレクティブを使用します。

※タグライブラリについては別の記事で詳しく説明します。


「taglib」ディレクティブの記述方法は以下の2通りがあります。

■「tldファイル」を使う場合

<%@ taglib uri="tldファイルのURI" prefix="タグプレフィックス" %>

■タグファイルを保存したディレクトリを指定する場合

<%@ taglib tagdir="タグファイル" prefix="タグプレフィックス" %>





関連記事:【Java】JSPの基本的な構文 【Java】JSPでタグライブラリを使う(JSTL)




【著者】

新田

JavaメインのWebアプリケーション開発に多く携わっています。
Javaの基本的な部分の紹介や、これまで経験したシステム開発手法、新しい技術についても紹介していこうと思います。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事
【Java】JSPでタグライブラリを使う(JSTL)

【Java】JSPでタグライブラリを使う(JSTL)

こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様