Going my way

いいなと思ったことをメモしていきます。

ディレクティブの説明。例外が発生したら例外ページにリダイレクトするJSPサンプルなど。


Advertisements


ディレクティブタブとは、JSPのページ全体に作用するような定義を行うタグのこと。

pageディレクティブタブ
JSPファイル全体に関する属性を定義する。
ページ内の文字コードの設定やMIMEタイプ、セッションの有無など。

<%@ page 属性="値" %>
<%@ page pageEncoding="UTF-8" session="false" %>

pageディレクティブタグで使用可能な属性

import・・・JSPで使用するページをインポートする。
extends
session・・・セッション管理に参加するかどうかを指定する
buffer
contentType・・・レスポンスのMIMEタイプと文字エンコーディングを指定する。
この属性で指定された情報がHTTPのContent-Typeのヘッダーに指定される。
例)

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

他には
autoFlush
isThreadSafe
pageEncoding
など。


includeディレクティブタブ
JSPファイルに静的なインクルードを行うときに使用する

taglibディレクティブタグ
JSPファイル内でカスタムタグを利用するときに使用する

■例外が発生したら例外ページにリダイレクトするJSPサンプル

例外が発生するJSP

<%@ page contentType="text/html; charset=Windows-31J" %>
<%@ page errorPage="CatchException.jsp" %>
<html>
 <body>
  <h1>例外発生!!!</h1>
  <% int[] array  = {1,2,3};
     for(int i=0; i < 5; i++){
        out.println(array[i]);
     }
  %>
 </body>
</html>

例外の転送先のJSP

<%@ page contentType="text/html; charset=Windows-31J" %>
<%@ page isErrorPage="true" %>
<html>
 <body>
   <h1>例外をキャッチしたJSP</h1>
   <%= exception.toString() %>
 </body>
</html>

http://localhost:8082/web_comp/Exception.jsp
にリクエストを送ると、

ブラウザには

例外をキャッチしたJSP

java.lang.ArrayIndexOutOfBoundsException: 3

と表示される。