JSP(JavaServer pages)とは
サーブレットよりも効率的にWebアプリケーションを開発するために作られた言語で、HTMLコードの中にJSPで決められたタグを埋め込みHTMLを出力するプログラムを書くことが出来ます。拡張子は「.JSP」として、Tomcatのwebappsの下に任意のフォルダ(コンテキストルート)を作り、その中に格納します。配備記述子は不要でクライアントからは直接コンテキストルート/xxxx.jspでアクセスします。
JSPのタグ
宣言 Javaクラスのメンバ(フィールド、メソッド)定義を行う。宣言に定義した変数は異なるリクエスト間で共有される。 <%! … %> <%! static String name = "java user"; %> ディレクティブ JSPコンテンツ全体に関する基本的な設定をWebコンテナに伝える <%@ include … %> <%@ include file="/XXXX.jsp" %> <%@ page … %> <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" errorPage"/error.jsp" %> <%-- errorPage属性は独自のエラー頁へのURLを指定 --%> <%@ page import="java.util.*" %> <%@ taglib… %> スクリプトレット Javaコードを埋め込むための要素。ここで定義された変数はローカル変数となり、異なるリクエスト間では共有されません。 <% javaのコード %> <% int answer=20*3 + 1; %> スクリプトレットではifやfor、whileなどの制御構造を使ってHTMLコードを出力することも出来ます。 <% if(age>=20) { %> <p>大人です</P> <% } else { %> <p>子供です</p> <% } %> 式 何らかの値を持つ単一の式を指定。式の値はStringとして評価されます。式の末尾に「;」は不要です。 <%= 式 %> <%= answer %> コメント JSP内に各コメント。スクリプトレット内の各コメントは通常のJavaコメント。 <%-- 任意の文字列 --%> 標準アクション XML要素として記述するオブジェクトの生成、更新、ページ構成、画面遷移などの機能を提供する要素 <jsp: アクション名 属性 />
暗黙オブジェクト
HttpServletRequestなどJSPの記述の前提になるオブジェクトは自動的に生成され、変数に割り当てられ、宣言なしに利用することが出来ます。このため同じ名前の変数をプログラマが宣言することはできません。
<% String str = request.getParameter("XXXX"); %>
主な暗黙オブジェクトが割り当てられた変数
request、response、pageContext、session、application、Out、config、exception
JSPの配置
サーブレットは配備記述子を使ってJavaコードを隠蔽しますが、JSPはHTMLと同じですから配備記述子を使いません。この事からコンテキストルート以下のどの実パスに置くことが出来、その実パスでアクセスすることが出来ます。