JSP宣言
日本語 | ジャバ給仕頁宣言 |
英語 | JSP declaration |
ふりがな | じぇいえすぴーせんげん |
フリガナ | ジェイエスピーセンゲン |
JSPの中でフィールド及びメソッドを宣言するための記号、及びその記号で挟まれた範囲。
「<%!」と「%>」で挟まれた範囲は、「出力を行うメソッド」の外側とみなされ、フィールド及びメソッドを記述することができる。
JSP宣言内では、JSP暗黙オブジェクトを使用することはできない。
HTMLの出力部分やスクリプトレットは「メソッドの中」であり、JSP暗黙オブジェクトはそのメソッド内のローカル変数として宣言されているためである。
HTMLへの出力等は、out変数をメソッドの引数やフィールドで渡せるようにする必要があるため注意。
「<%!」と「%>」で挟まれた範囲は、「出力を行うメソッド」の外側とみなされ、フィールド及びメソッドを記述することができる。
JSP宣言内では、JSP暗黙オブジェクトを使用することはできない。
HTMLの出力部分やスクリプトレットは「メソッドの中」であり、JSP暗黙オブジェクトはそのメソッド内のローカル変数として宣言されているためである。
HTMLへの出力等は、out変数をメソッドの引数やフィールドで渡せるようにする必要があるため注意。
参考サイト
- (参考サイトはありません)
<%-- webapps/sample-servlet/sample.jsp --%>
<%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
pageEncodingには、このファイルを保存した時の文字コードを指定してください。
Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>
<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>
<%!
// ここがJSP宣言内。
// フィールドやメソッドを宣言できます。
/** フィールド。 */
javax.servlet.jsp.JspWriter jspWriter = null;
private void output( String string )
{
try
{
jspWriter.print( string );
jspWriter.println( "<br>" );
}
catch( java.io.IOException e )
{
// print()メソッドやprintln()メソッドの出力で
// 失敗すると例外が投げられます。
e.printStackTrace();
}
// JSP宣言内では、JSP暗黙オブジェクトは使用できません。
// スクリプトレットは「メソッドの中」で、JSP宣言は
// その外になるからです。
// out.println( "test" );
// コンパイルエラー:
// org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
//
// JSPファイル: null の中の行: -1でエラーが発生しました
//
// 生成されたサーブレットのエラーです:
// [javac] Compiling 1 source file
//
// D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:35: シンボルを解決できません。
// シンボル: 変数 out
// 場所 : org.apache.jsp.sample_jsp の クラス
// out.println( "test" );
// ^
}
%>
<%
// JSP宣言内のフィールドやメソッドは、スクリプトレットから
// アクセスできます。
jspWriter = out;
output( "テスト" );
%>
<%-- 出力結果 --%>
<%--
テスト
--%>
</body>
</html>
<%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
pageEncodingには、このファイルを保存した時の文字コードを指定してください。
Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>
<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>
<%!
// ここがJSP宣言内。
// フィールドやメソッドを宣言できます。
/** フィールド。 */
javax.servlet.jsp.JspWriter jspWriter = null;
private void output( String string )
{
try
{
jspWriter.print( string );
jspWriter.println( "<br>" );
}
catch( java.io.IOException e )
{
// print()メソッドやprintln()メソッドの出力で
// 失敗すると例外が投げられます。
e.printStackTrace();
}
// JSP宣言内では、JSP暗黙オブジェクトは使用できません。
// スクリプトレットは「メソッドの中」で、JSP宣言は
// その外になるからです。
// out.println( "test" );
// コンパイルエラー:
// org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
//
// JSPファイル: null の中の行: -1でエラーが発生しました
//
// 生成されたサーブレットのエラーです:
// [javac] Compiling 1 source file
//
// D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:35: シンボルを解決できません。
// シンボル: 変数 out
// 場所 : org.apache.jsp.sample_jsp の クラス
// out.println( "test" );
// ^
}
%>
<%
// JSP宣言内のフィールドやメソッドは、スクリプトレットから
// アクセスできます。
jspWriter = out;
output( "テスト" );
%>
<%-- 出力結果 --%>
<%--
テスト
--%>
</body>
</html>
<%-- webapps/sample-servlet/sample.jsp --%> <%-- http://localhost:8080/sample-servlet/sample.jsp でアクセスできます。 --%> <%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%-- pageEncodingには、このファイルを保存した時の文字コードを指定してください。 Windowsであれば"Windows-31J"を指定すればいいでしょう。 --%> <html> <head> <title>JSPのサンプル</title> </head> <body> <%! // ここがJSP宣言内。 // フィールドやメソッドを宣言できます。 /** フィールド。 */ javax.servlet.jsp.JspWriter jspWriter = null; private void output( String string ) { try { jspWriter.print( string ); jspWriter.println( "<br>" ); } catch( java.io.IOException e ) { // print()メソッドやprintln()メソッドの出力で // 失敗すると例外が投げられます。 e.printStackTrace(); } // JSP宣言内では、JSP暗黙オブジェクトは使用できません。 // スクリプトレットは「メソッドの中」で、JSP宣言は // その外になるからです。 // out.println( "test" ); // コンパイルエラー: // org.apache.jasper.JasperException: JSPのクラスをコンパイルできません // // JSPファイル: null の中の行: -1でエラーが発生しました // // 生成されたサーブレットのエラーです: // [javac] Compiling 1 source file // // D:\Java\Tomcat 4.1\work\Standalone\localhost\sample-servlet\sample_jsp.java:35: シンボルを解決できません。 // シンボル: 変数 out // 場所 : org.apache.jsp.sample_jsp の クラス // out.println( "test" ); // ^ } %> <% // JSP宣言内のフィールドやメソッドは、スクリプトレットから // アクセスできます。 jspWriter = out; output( "テスト" ); %> <%-- 出力結果 --%> <%-- テスト --%> </body> </html>