JSP(Java Server Pages)を使おう! (4/5)
作成:2012-04-29 12:01
更新:2012-04-29 12:10
更新:2012-04-29 12:10
■長いコードを実行させよう
とりあえずJSPでJavaのコードがサーバー側で実行されることはわかりました。しかし、<%= %>で可能なのは、1つの文の結果を出力するということだけです。これしかできないのではちょっと困りますね。もっとまとまったコードを実行できないといけません。
こうした場合に用いられるのが、<% %>というタグです。これは<%から%>までの間に、Javaのコードを記述すると、それらが実行されます。これは「結果を出力する」というようなものではなく、ただ実行するだけですので、必要に応じて結果を出力する処理を自分で書いてやる必要があります。
もう1つ覚えておきたいのが、「import文」です。Javaでは、よく使うクラスは、パッケージ名を指定せずクラス名だけで利用できるように、冒頭にimport文を用意しておくのが常です。これは、pageディレクティブを使って指定することができます。
では、先ほどのサンプルをもう少し修正してみましょう。下のリスト欄のように書き換えて実行してみてください。今日の日付が表示されます。今回は、SimpleDateFormatを使ってDateをフォーマットし、表示させています。
今回のサンプルでは、フォーマットしたテキストの出力をさせるところで、<%= %>を使わず、「out.println(result);」というようにして出力しています。この「out」というのは、一体なんでしょう?
これは、JSPに特有のもので「暗黙オブジェクト」と呼ばれるものの一つです。暗黙オブジェクトとは、JSPのコード内で、何も宣言などすることなく、なぜか勝手に使えるようになるオブジェクトのことです。
この「out」はJspWriterというクラスのインスタンスなのですが、まぁ皆さんがよく見るSystem.outのoutの仲間と思ってよいでしょう。中に用意されているprintやprintlnといった出力用のメソッドを呼び出せば、それがそのままWebページに出力される、というわけです。これはよく使いますから覚えておきましょう。
こうした場合に用いられるのが、<% %>というタグです。これは<%から%>までの間に、Javaのコードを記述すると、それらが実行されます。これは「結果を出力する」というようなものではなく、ただ実行するだけですので、必要に応じて結果を出力する処理を自分で書いてやる必要があります。
もう1つ覚えておきたいのが、「import文」です。Javaでは、よく使うクラスは、パッケージ名を指定せずクラス名だけで利用できるように、冒頭にimport文を用意しておくのが常です。これは、pageディレクティブを使って指定することができます。
<%@ page import="クラスの指定" %>このように記述することで、指定されたクラスがパッケージを省略して利用できるようになります。もちろん、ワイルドカード(*)も使えます。
では、先ほどのサンプルをもう少し修正してみましょう。下のリスト欄のように書き換えて実行してみてください。今日の日付が表示されます。今回は、SimpleDateFormatを使ってDateをフォーマットし、表示させています。
■暗黙オブジェクト「out」について
今回のサンプルでは、フォーマットしたテキストの出力をさせるところで、<%= %>を使わず、「out.println(result);」というようにして出力しています。この「out」というのは、一体なんでしょう?
これは、JSPに特有のもので「暗黙オブジェクト」と呼ばれるものの一つです。暗黙オブジェクトとは、JSPのコード内で、何も宣言などすることなく、なぜか勝手に使えるようになるオブジェクトのことです。
この「out」はJspWriterというクラスのインスタンスなのですが、まぁ皆さんがよく見るSystem.outのoutの仲間と思ってよいでしょう。中に用意されているprintやprintlnといった出力用のメソッドを呼び出せば、それがそのままWebページに出力される、というわけです。これはよく使いますから覚えておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※helo.jspの修正 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.util.Calendar" %> <%@ page import="java.text.SimpleDateFormat" %> <% Calendar calendar = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyy月 MM月 dd日"); String result = format.format(calendar.getTime()); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Sample jsp</title> <style> h1 {font-size:16pt; background:#AAFFAA; padding:5px; } </style> </head> <body> <h1>Sample jsp page</h1> <p>これはサンプルで用意したページです。</p> <p><% out.println(result); %></p> </body> </html>
※関連コンテンツ