JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > JSP(ディレクティブ)編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
アプリケーション編
Swing編
Swing(イベント)編
Swing(Look&Feel)編
アプレット編
iアプリ編
サーブレット編
サーブレット(Linux)編
サーブレット(web.xml)編
サーブレット(セッション)編
サーブレット(クッキー)編
サーブレット(フィルタ)編
JSP編
JSP(ディレクティブ)編
JSP(アクション)編
JSP(スクリプト)編
JSP(オブジェクト)編
JSP(カスタムタグ)編
JSP(データベース)編
Apache + Tomcat編
Struts編
JDBC編
JDBC(データソース)編
JDBC(MySQL)編
JDBC(PostgreSQL)編
JDBC(トランザクション)編
JavaMail(SMTP)編
JavaMail(POP)編
JNI編
RMI編
RMI(アプレット)編
CORBA編
JNDI編
EJB編
EJB(Entity Bean)編
JMS(PTP)編
JMS(Pub/Sub)編
XML(SAX)編
XML(DOM)編
XSLT編
SOAP編
国際化編
国際化(タイムゾーン)編
国際化(通貨)編
リフレクション編
コレクション編
コレクション(Set)編
コレクション(List)編
コレクション(Map)編
スレッド編
正規表現編
アサーション編
ログ機能編
サウンド編
ファイル入出力編
URL編
ソケット編
データグラム編
HTTP
FTP編
jar編
javadoc編
Ant編
外部コマンド編
プロパティファイル編
システムプロパティ編
Eclipse編
  2002/02/03  田中宏和
JSP(ディレクティブ)編
JSPを構成するものには、ディレクティブアクションスクリプトがあります。ここではディレクティブを取り上げたいと思います。
(ディレクティブの例)
<%@ page import="java.util.*" %>

(アクションの例)
<jsp:useBean id="helloworld" class="javahello.HelloWorld" />

(スクリプトの例)
<%
  String s = "Hello World";
  out.println(s);
%>
ディレクティブ
(構文)
<%@ ディレクティブ 属性=値 %>

(説明)
ディレクティブとはJSPコンテナにJSPのページの情報を指示するためのものです。ディレクティブには以下の3つがあります。
ディレクティブの種類
ディレクティブ 説明
page JSPページの様々な属性を定義します
taglib JSPページが使用するタグライブラリを宣言します
include JSPページに外部ファイルの内容をJavaコード変換時に挿入します
 
1.pageディレクティブの属性と説明
属性 説明
import インポートして使用するパッケージを指定します。カンマで区切って複数してできます。
例)
<%@ page import="java.util.*,java.text.SimpleDateFormat" %>
session このJSPページがセッションに参加するかどうか指定します。trueを指定した場合はsessionオブジェクトを使用してセッションの情報を取得できます。falseを指定した場合はsessionオブジェクトを使用できません。規定値はtrueです。
buffer ページ出力時のバッファのサイズを指定します。noneを指定するとバッファリングを行いません。規定値は8kbです。
例1)
<%@ buffer="16kb" %>
例2)
<%@ buffer="none" %>
autoFlush バッファが一杯になった時に自動的にフラッシュするかどうか(true)、またはバッファが一杯になった場合に例外を投げるかどうか(false)、を指定します。規定値はtrueです。bufferがnoneに指定されている場合はautoFlashはfalseにできません。
isThreadSafe スレッドセーフのレベルを指定します。
falseの場合、ページのインスタンスはクライアントからの要求を一つのスレッドで処理します。コンテナは一つのインスタンスへのアクセスを排他制御することでそのような動作を保証しています。複数の要求が同時にある場合、コンテナによってはプールしてある別のインスタンスで処理したり、新たにインスタンスを生成して処理したりする場合もあります。
trueの場合、複数のスレッドを用いて一つのJSPページで一度に複数のクライアントの要求を処理します。規定値はtrueです。
info JSPページの情報を記述します。
例)
<%@ page info="Java Hello World JSP Page" %> 
isErrorPage 別のJSPページからの例外を処理するかどうかを指定します。trueの場合は別のJSPページで発生した例外を参照するexecptionオブジェクトが使用可能になります。falseの場合はexceptionオブジェクトを使用できません。規定値はfalseです。
例)
<%@ page isErrorPage="true" %>
errorPage このJSPページで処理されなかった例外を処理する別のページのURLを指定します。例外を処理するページはpageディレクティブでisErrorPage属性をtrueに設定します。
例)
<%@ page errorPage="/error.jsp" %>
contentType JSPページが生成する応答の文字セットとMIMEタイプを指定します。
例)
<%@ page contentType="text/html; charset=Shift_JIS" %>
pageEncoding JSPページが生成する応答の文字セットを指定します。
例)
<%@ page pageEncoding="Shift_JIS" %>
 
 
2.taglibディレクティブの属性と説明
属性 説明
uri タグライブラリディスクリプタファイルの絶対パスまたは相対パスを指定します。
tagPrefix カスタムタグに使用する接頭辞文字列を指定します。jsp,jspx,java,javax,servlet,sun,sunwは予約されているため指定できません。また、空の文字列も指定できません。
(例1)
<%@ taglib uri="/jsp/helloworld.tld" prefix="hw" %>
(例2)
<%@ taglib uri="mytag" prefix="hw" %>
この場合web.xmlに以下の記述を追加
<taglib>
  <taglib-uri>mytag</taglib-uri>
  <taglib-location>/jsp/helloworld.tld</taglib-location>
</taglib>
 
3.includeディレクティブの説明
JSPページにテキストやJSPのコードが記述された外部ファイルの内容をJavaコード変換時に挿入します。
(例)
<%@ include file="helloworld.html" %>
 
◆サンプルコード
ここでは文字セットがShift_JISで「こんにちわ 世界」と表示するJSPを作りたいと思います。
helloworldsjis.jsp
<%@ page contentType="text/html; charset=Shift_JIS" %>
<html>
<head>
<title>Hello Worldを日本語で出力</title>
</head>
<body>
<%
  String s = "こんにちわ 世界";
  out.println(s);
%>
</body>
</html>
 
pageディレクティブでMIMEタイプと文字セットを指定しています。この指定をしないと文字化けして上手く表示されません。
JSP編を参考に表示させてみてください。
http://localhost:8080/examples/jsp/helloworldsjis.jsp
おおお!
表示されましたね!
 
■関連
JSP(アクション)編
JSP(スクリプト)編
■ツール
ツールの部屋

 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME