JSPとは
JSP (Java Server Pages) は、サーブレットと同じく、サーバーサイドで動きます。サーブレットクラスの代わりにJSPファイルを利用することで、JSPが使えます。
JSPファイルはリクエストされるとサーブレットクラスに変換されるため、サーブレットクラスでできることはJSPファイルでも行うことができます。
JSPファイルを使用すると、HTMLの出力を非常に楽にすることができます。
<% String name = "名無し 権平"; int age = 32; %> <html> <head> <meta charset="UTF-8"> <title>JSPのファイル</title> </head> <body> <p>私の名前は<%= name %>。年齢は<%= age %>歳です。</p> </body> </html>
このように、HTMLコードの中にJavaのコードを書き込むことができます。
<% %> のなかにJavaのコードが含まれています。これをスクリプトレットといいます。
JSPファイルの特徴
- リクエストして実行する
- サーブレットクラスに変換され、サーブレットクラスと同じことができる
- HTMLのなかにJavaのコードを埋め込む
- サーブレットクラスより楽にHTMLを出力できる
JSPファイルの基本形
先ほど出たスクリプトレットを含め、基本形を一覧にしてみます。
スクリプトレット
<% Javaのプログラムコード %>
pageディレクティブ ContentTypeヘッダを指定
<%@ page contentType="text/html; charset=文字コード" %>
pageディレクティブ クラス、インターフェイスをインポート
<%@ page import="パッケージ名・クラス名" %>
JSPコメント
<%-- JSPコメント --%>
JSPサンプル文
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.Date,java.text.SimpleDateFormat" %> <% // 運勢をランダムで決定 String[] luckArray = {"超すっきり","すっきり","最悪"}; int index = (int) (Math.random() * 3); String luck = luckArray[index]; // 実行日を取得 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日"); String today = sdf.format(date); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>すっきり占い</title> </head> <body> <p><%= today %>の運勢は「<%= luck %>」です</p> </body> </html>