#JSPとは
今回はWebアプリケーションを作成するのに欠かせない**「JSP」**について説明していきます。
- JSPとは何か
- JSPの構成要素
- JSPファイルを作成して実行する
以上の3点について順を追って解説していきます。
#JSPとは何か
「JSP(JavaServer Pages)」は、サーブレットと同じ、サーバサイドプログラムの技術です。サーブレットクラスの代わりにJSPファイルを使用します。
JSPファイルは、リクエストされるとサーブレットクラスに変換されるため、サーブレットクラスでできることはJSPファイルでも行うことができます。
JSPファイルを使うメリットは、HTMLの出力を非常に楽にすることが可能です。
JSPファイルは、HTMLの中にJavaコードを埋め込んで作成します。
Javaコードを埋め込む?と言われてもよく分からないと思うので、次のJSPの構成要素を見ながらやり方を見ていきましょう。
JSPの構成要素
JSPファイルは、HTMLとJavaコードで構成されています。
HTMLで書かれた部分をテンプレート
Javaコードで書かれた部分をスクリプトと呼びます。
ここからは、基本んできなJSPファイルを作成する上で必要な要素である①「JSPコメント」,②「pageディレクティブ」,③「スクリプトレット」,**④「スクリプト式」**について詳しく学んでいきます。
以下のサンプルコードを見てみましょう。
<%--① JSPコメント --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%><%--② pageディレクティブ --%>
<%
String name="ヤマザキ";
int age=24;
%><%--③ スクリプトレット--%>
<!DOCTYPE html><%-- テンプレート --%>
<html>
<head>
<meta charset="UTF-8">
<title>サンプル</title>
</head>
<body>
私の名前は<%=name %>。年齢は<%=age %>才です。<%--④ スクリプト式--%>
</body>
</html>
####①「JSPコメント」
<%-- ... --%>
<%--① JSPコメント --%>
ただし、スクリプトレット内のコメントを記述する際は、Javaの文法に従います。
※スクリプトレットは、③を参照
<%--① JSPコメント --%>
<%
//変数を宣言
%>
####②「pageディレクティブ」
<%@page 属性名="値"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
pageディレクティブを使うと、JSPファイルに関する様々な設定を行うことができます。
よく使用する属性は、contentType属性とimport属性です。
####③「スクリプトレット」
<% Javaコード%>
<%
String name="ヤマザキ";
int age=24;
%>
スクリプトレットを使用すると、JSPファイルにJavaコードを埋め込むことができます。
####④「スクリプト式」
<%=Javaコード%>
<body>
私の名前は<%=name %>。年齢は<%=age %>才です。
</body>
スクリプト式を使うと、変数やメソッドの戻り値などを出力することができます。
#JSPファイルを作成して実行する
EclipseでJSPファイルを作成する方法はHTMLファイルを作成する動的Webプロジェクトを選択して右クリック→「新規」→「JSPファイル」を選択します。
※JSPファイルがみつからない場合は、パースペクティブが「Java EE」になっていない可能性があります。
ファイルの保存場所とファイル名を指定し「完了」を押します。保存場所はデフォルトで「WebContent」ディレクトリが選択されています。
以上の方法でJSPファイルを作成するとpageディレクティブなど必要最低限の内容はEclipseが書いてくれます。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
//<%ここにJavaのコード追加%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ここにタイトルを挿入</title>
</head>
<body>
//<p>ここに段落を書きます</p>
</body>
</html>