• 検索結果がありません。

JSP タグ

● JSP タグの分類

– 基本 (Core) タグ

– ディレクティブ

– スタンダードアクション

● タグ以外の要素

– 暗黙オブジェクト

JSP の作成手順

● JSP ファイルの作成

– 拡張子「 .jsp 」のテキストファイルを作成

● ドキュメントルート以下の任意の場所に作成可能

フォルダを作成してその下に作成することも可能

– JSP ファイルをコーディング

● テキストエディタのみでコーディング可能

● コンパイルは実行時に行うので作成時には不要

Eclipse

でフォルダを新規作成するには、プロジェクト名を 選択して右クリックし、「新規」→「フォルダ」を選択します。

JSP の実行

● JSP の実行手順

– URL 指定は、通常の HTML ファイルと同様

– サーブレットの「サーブレットパス」のような定義は不要

● JSP の実行順序

– 原則として記述された順に解釈・実行される

– HTML タグはそのまま表示

– JSP タグは実行された結果が表示される

● ただし

JSP

タグには表示結果を伴わないものもある

JSP タグの分類

● JSP タグの分類

– <% と %> で囲まれるタグ

● 単独で動作(開始タグ、終了タグの区別がない)

– <jsp:xxx で始まるタグ

● 開始タグ、終了タグがある

間に別のタグを含めることができる

● 単独で終了するタグは、「

/

」をつけて閉じる

– XML

の記述文法を踏襲している

基本 (Core) タグ

● 基本 (Core) タグ

– Comment

– Expression

– Scriptlet

– Declaration

Comment(1)

● Comment

– JSP にコメントを記述するためのタグ

– JSP 実行時には無視されブラウザにも出力されない

<%--

コメント内容

--%>

Syntax

Comment(2)

● Sample

– HTML コメントタグ( <!-- ~ --> )との動作の違いを確 認してみましょう(実行後、ブラウザで「ソース」を表示)

<html>

<body>

<h1>Comment Tag</h1>

<!-- This is HTML Comment -->

<%-- This is JSP Comment --%>

</body>

</html>

comment.jsp

注)本テキストでは、これ以降、特に指示がなければ、JSPファイルは

ドキュメントルート下に/pageフォルダを作成し、その下に作成してください。

Comment(3)

● comment.jsp の実行結果(ソースを表示)

Expression(1)

● Expression

– 式の評価結果を文字列に変換しブラウザに出力する

● 文は記述できないので、末尾に「;」はつけない

● 戻り値が定義されたメソッド呼び出しを指定することも可能

<%=

%>

Syntax

<jsp:expression>

</jsp:expression>

or

Expression(2)

● Sample(<%= ・・・ %> を使用 )

– Expression タグの箇所が式の評価結果となって表示さ れていることを確認しましょう

<html>

<body>

<h1>Expression Tag</h1>

<p><%= 5*5*Math.PI %></p>

</body>

</html>

expression.jsp

Expression(3)

● expression.jsp の実行結果

Expression(4)

● Sample(<jsp:expression> を使用 )

– 前スライド (Expression(2)) と同じ結果になることを確認 しましょう

<html>

<body>

<h1>Expression Tag</h1>

<p>

<jsp:expression>5*5*Math.PI</jsp:expression>

</p>

</body>

</html>

expression2.jsp

Scriptlet(1)

● Scriptlet

– Java コードを実行するためのタグ

● タグ内に書かれた

Java

コードがそのまま実行される

● メソッド定義は不要

● タグが離れていても、

{

・・・

}

の対応は保持される

● ひとつのタグに、複数の文を記述することが可能

<%

実行したいJavaコード

%>

Syntax

Scriptlet(2)

● Sample

– 2つの Scriptlet タグに含まれる「 { 」と「 } 」が対応している ことを確認しましょう。

<html>

<body>

<h1>Scriptlet Tag</h1>

<% for(int i=0;i<10;i++) { %>

<%= i %>

<% } %>

</body>

</html>

scriptlet.jsp

Scriptlet(3)

● scriptlet.jsp の実行結果

Declaration(1)

● Declaration

– インスタンス変数を記述するためのタグ

● 変数の値はアプリケーションが終了、再起動するか、

JSP

が 再コンパイルされるまで保持される

● 複数の定義を行を分けて記述することも可能

<%!

インスタンス変数宣言

%>

Syntax

<jsp:declaration>

インスタンス変数宣言

</jsp:declaration>

or

Declaration(2)

● Sample(<%! ・・・ %> を使用 )

– 実行後、リロードボタンを繰り返しクリックし、どのような 結果となるか確認してみましょう

<html>

<body>

<h1>Declaration Tag</h1>

<%! int a = 0; %>

<%= a++ %>

</body>

</html>

declaration.jsp

Declaration(3)

● declaration.jsp の実行結果

リロードすると この値が増えていく

Declaration(4)

● Sample(<jsp:declaration> を使用 )

– Declaration(2) の declaration.jsp と同じ結果になること を確認しましょう

<html>

<body>

<h1>Declaration Tag</h1>

<jsp:declaration>

int a = 0;

</jsp:declaration>

<%= a++ %>

</body>

</html>

declaration2.jsp

ディレクティブ

● ディレクティブ

– Page Directive

– Include Directive

– Taglib Directive (タグライブラリの項で紹介)

Page Directive(1)

● Page Directive

– ページに関する設定を行うためのタグ

– 各種の属性を指定することで設定を行う

<%@ page

属性指定

%>

Syntax

<jsp:directive.page

属性指定

/>

or

Page Directive(2)

● 主な属性

– contentType 属性

● 出力するページの

MIME

タイプとエンコーディングを指定する

HttpServletResponse#setContentType()

と同様の役割

● 下記の

pageEncoding

属性を省略した場合は、

JSP

ファイル そのもののエンコーディングと一致している必要あり

● 例)

contentType=”text/html;charset=Windows-31J”

– pageEncoding 属性

JSP

ファイルそのもののエンコーディングを指定する

● 主に、ソースファイルのエンコーディングと、出力のエンコー ディングが異なる場合に用いられる

Page Directive(3)

● 主な属性

– import 属性

Java

クラスのインポートを指定する

● クラス定義における

import

文と同様の役割

– Page Directiveのimport属性では複数の指定をカンマで区切って行

うことが可能

● 例)

import=”java.util.*,java.text.*”

Page Directive(4)

● 主な属性

– session 属性

● ページ内でセッションオブジェクトを使用するかを指定する

session=”true”

の場合

セッションオブジェクトを使用する

その時点でセッションが開始されていなければ、セッションを開始し、

セッションオブジェクトを新規に生成

session=”false”

の場合

セッションオブジェクトを使用しない

ページ内に、セッションオブジェクトにアクセスするコードがあると、実 行時(サーブレットへの変換時)にエラーとなり実行できない

● デフォルト(指定を省略した場合)は

session="true"

とみなさ れる

Page Directive(5)

● 主な属性

– errorPage 属性

● ページ内で例外が発生した場合に代わりに表示するエラー用 のページを指定する

● 例)

errorPage=”/web/jsp/error.jsp”

– isErrorPage 属性

● このページが、

errorPage

属性で指定されたエラー用のペー ジかどうかを指定する

isErrorPage=”true”

とすると、

exception

という暗黙オブ ジェクト(後述)に、前のページで発生した例外インスタンスが 格納され、例外の内容を解析することが可能となる

isErrorPage

属性を省略しても、エラー用のページとして利用 することは可能

Page Directive(6)

● 主な属性

– isELIgnored 属性

ページ内にある

EL

式(後述)を解釈するか、無視するかの指定

isELIgnored="true"

とすると、

EL

式があっても無視される

isELIgnored="false"

とすると、

EL

式を解釈して実行する

Page Directive(7)

● Sample(contentType 属性を使用 )

– 日本語を含む JSP が contentType 属性を使用すること で正しく表示できることを確認しましょう

<%@page contentType="text/html;charset=Windows-31J" %>

<html>

<body>

<h1>Page Directive</h1>

<p>

日本語が正しく表示されていますか?

</p>

</body>

</html>

page.jsp

関連したドキュメント