読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JSPの要素、タグ、アクション、ディレクティブのサンプル

<スポンサーリンク>

基礎からのサーブレット/JSP 第3版 (基礎からのシリーズ)

基礎からのサーブレット/JSP 第3版 (基礎からのシリーズ)

基礎からのサーブレット/JSPで学んだので、まとめ。


JSPで他のリソースをインクルードするタグ

<jsp:include>

例
<jsp:include page="hoge.jsp"/>

pageに指定する値は相対パス、あるいは"/"で始めたコンテキストルートからのパスを指定する。

このような、というタグを「JSPのアクション」という。

includeアクションは、子要素にパラメータを指定できる。

header.jspをインクルードするのがjsp:includeで、
param name="user" value="mizky"の部分でパラメータを指定している。

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

<html>
<body>

<jsp:include page="header.jsp">
    <jsp:param name="user" value="mizky" />
</jsp:include>

<p>ボディの部分

</body>
</html>

header.jspはパラメータを渡されるので、それを受け取るコードは以下の通り。

<%@page contentType="text/html; charset=Windows-31J"%>
<p>インクルードされるヘッダー
</p>
<br>
<%
String value = request.getParameter("user");
out.println("指定されたパラメータの値:" + value);
%>

このように、request.getParameter("●●");
でパラメータの値を取得できる。

ブラウザに表示される結果

インクルードされるヘッダー


指定されたパラメータの値:mizky
ボディの部分

■ディレクティブによるインクルード<@include>というディレクティブを使ってもインクルードはできる。<%@ 〜 %>のタグは、JSPのディレクティブと呼ばれる。
includeディレクティブは静的なファイルのインクルードを行う。

<%@include file="common.jsp"%>

<html>
<body>

<%=new Date() %>
</body>
</html>
<%@page import="java.util.Date"%>

ブラウザに表示される結果

Thu Jan 17 00:22:49 JST 2013

JSPは実行されるまでに、JSPのソースからサーブレットのソースに変換される。それがコンパイルされてclassとなり、サーブレットとして表示される。

ディレクティブの設定が利用されるのは、JSPのソースからサーブレットのソースに変換されるタイミングである。

アクションの実行タイミングはリクエスト時である。


■JSPの要素

コア要素
<%!  %>  宣言:フィールドやメソッドを宣言する
<%   %>  スクリプトレット:Javaのソースを記述する
<%=  %>  式:レスポンスに出力する値を結果として返す式を記述する
<%--  --%> コメント:コメントを記述する

ディレクティブ
<%@  %> JSPからサーブレットへの変換時の設定やオプションを記述する

アクション
<jsp:xxx>   </jsp:xxx>  JSPの実行時に呼び出される

サンプル

<%-- 
ディレクティブ 
JSPからサーブレットへの変換時の設定やオプションを記述する
--%>
<%@page contentType="text/html; charset=Windows-31J"%>
<%@page import="java.util.*" %>

<html>
<body>
<%--標準アクション --%>
<jsp:include page="header.jsp">
    <jsp:param name="test" value="TEST" />
</jsp:include>

<%--コア要素 --%>
<%--式:レスポンスに出力する値を結果として返す式を記述する --%>
時刻→<%=new Date() %>

<%--スクリプトレット:Javaのソースを記述する --%>
<%
for(int i=0;i<10;i++) {
    out.println("<br>" + i);
}
%>


</body>
</html>

ブラウザに表示されるのは・・・

インクルードされるヘッダー


指定されたパラメータの値:TEST 時刻→Thu Jan 17 00:42:42 JST 2013 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9