エンタープライズ:特集 2003/10/24 15:00:00 更新


特集:第3回 Sun ONE Studio 5を使ったアプリケーション構築の手順 (5/6)

実践テクニック−アプリケーション構成の手順を学ぼう

 ここで構築していくアプリケーションは、Webブラウザで入力された文字列(名前)をServletが受け、Javaクラスを使用してリクエストを受けた時間を元にメッセージ(good morning、afternoon、evening)を作成、そのメッセージをJSPを用いてWebブラウザに返すという構成です。シンプルかつWebアプリケーションを構築する上で欠かせない基本的なテクニックです。

 そして、アプリケーション構成とデータの流れは下図の通りです。

app_zu1.gif

「入力画面(HTML)」、「リクエストを受けるインターフェース・ビジネスロジックはServlet・Javaクラス」、「レスポンスを返すインタフェース出力画面はJSP」


Webアプリケーションの作成

1. ファイルシステムをマウント

dev1.jpg

Sun ONE Studio 5内「エクスプローラ」の「ファイルシステム」→「マウント」→「ローカルディレクトリ」を選択します


dev2.jpg

フォルダを選択します。ここでは、「C:\work2\S1S5\SimpleWeb」としました。また、フォルダを新規作成する場合には、右上の「新規ディレクトリ作成」ボタンをクリックすればよいです


2. マウントしたフォルダをWebモジュールに変換

dev3.jpg

マウントしたフォルダを右クリックし、「ツール」→「ファイルシステムをWebモジュールに変換」を選択します。これにより、「WEB-INF」や「web.xml」などWebモジュールに必要なフォルダ、ファイルのテンプレートが作成されます


dev4.jpg

次に、確認ウィンドウで「了解」をクリックします


3. Webモジュールで使用するJavaパッケージを作成

dev6.jpg

「WEB−INF」以下の「クラス」を右クリックし、「新規」→「Java パッケージ」を選択します


dev7.jpg

ここでは新規ウィザード名に「zdnet」を定義し、「完了」をクリックします


 次に、作成した「zdnet」を選択し、同様の手順でJavaパッケージ「s1s5」を作成します。さらに「s1s5」を選択し、Javaパッケージ「samples」を、最終的には「クラス/zdnet/s1s5/samples」を作成します。

4. Javaクラスを作成する

dev9.jpg

パッケージ「samples」を右クリックし、「新規」→「Javaクラス」を選択します


dev10.jpg

クラス名を「GreeterBaen」と定義し「完了」をクリックします


 さらに、作成したクラス「GreeterBean」を次のように編集しましょう。

/*
* GreeterBean.java
*
* Created on 2003/09/07, 21:24
*/

package zdnet.s1s5.samples;
import java.util.*;

/**
*
* @author administrator
*/
public class GreeterBean {

/** Creates a new instance of GreeterBean */
public GreeterBean() {

}
public String getGreeting(){
System.out.println("GreeterBean is determining message...");
String message = null;
Calendar calendar = new GregorianCalendar();
int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
if(currentHour < 12) message = "morning";
else {
if( (currentHour >= 12) &&
(calendar.get(Calendar.HOUR_OF_DAY) < 18)) message = "afternoon";
else message = "evening";
}
System.out.println("- Message determined successfully");
return message;
}
}

dev12.jpg

続いて作成したクラス「GreeterBean」を右クリックし、「コンパイル」を選択します。


5. Servletを作成します

dev13.jpg

パッケージ「samples」を右クリックし、「新規」→「すべてのテンプレート」を選択します


dev14.jpg

「JSP&Servlet」を表示させ、「Servlet」を選択して「次へ」をクリックします


dev15.jpg

新規ウィザードでServlet名「GreeterServlet」を定義し、「次へ」をクリックします


dev16.jpg

このServletを呼び出すためのURLパターンを「/greeter」に変更します。変更後、「完了」をクリックします


6. ソースコードを編集します

 ここまでのServletウィザードが完了すると、ソースエディタが起動します。そのソースエディタを使用して、「processRequest」メソッドを次のように編集しましょう。

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
/** クライアントからのリクエストのパラメータ値を取得 **/
String loginName = request.getParameter("name");
/** 取得した値に文字列を加えリクエストにセット**/
GreeterBean gb = new GreeterBean();
String _message = gb.getGreeting();
String message = "Good " +_message + "! " + loginName;
request.setAttribute("message",message);
/**リクエスディスパッチャーを生成**/
RequestDispatcher rd =
getServletConfig().getServletContext().getRequestDispatcher("/Greeter.jsp");
/**「Greeter.jsp」にフォワード**/
rd.forward(request, response);
}

 編集後は、「GreeterServlet」を右クリックして「コンパイル」を選択します。コンパイルが完了したら次に進めます。

7. HTMLを作成します。

dev17.jpg

マウントしているフォルダを右クリックし「新規」→「すべてのテンプレート」を選択します


dev18.jpg

「その他」→「HTMLファイル」を選択し、「次へ」をクリックします


dev19.jpg

新規ウィザードでHTMLファイル名「index」を定義し、「完了」をクリックします


8. HTMLを編集します

 次のようにHTMLを編集します。ポイントは環境に合った「charset」を設定することです。

index.html

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"></META>
<TITLE>Sun ONE Studio 4 Simple Webアプリケーション</TITLE>
</HEAD>
<BODY>あなたの名前を入力してください。<br>
<FORM METHOD="POST" ACTION="greeter">
<INPUT TYPE="TEXT" NAME="name"></INPUT>
<INPUT TYPE="SUBMIT" value="送信"></INPUT>
</FORM>
</BODY>
</HTML>

9. JSPを作成します

dev17.jpg

マウントしているフォルダを右クリックし「新規」→「すべてのテンプレート」を選択します


dev20.jpg

「その他」→「HTMLファイル」を選択し、「次へ」をクリックします


dev21.jpg

新規ウィザードでJSP名「Greeter」を定義します


10. JSPを編集します

 次のようにJSPを編集します。ここでは環境に合った「charset」を設定してください。

Greeter.jsp

<%@page contentType="text/html;charset=Shift_JIS"%>
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"></META>
<title>Sun ONE Studio 5 Simple Webアプリケーション</title>
</head>
<body>
<%=request.getAttribute("message")%>さん!
</body>
</html>

11. コンテキストルートを指定

dev22.jpg

「WEB-INF」を選択し、下段「コンテキストルート」を「/greeter」と設定します


12. Webアプリケーションで扱うロケールと文字セットの設定

dev23.jpg

「web」を選択し、下段「Sun ONE AS」タブを表示します。「ロケールと文字セットのマップ」を選択し、右端の「…」をクリックする


dev24.jpg

プロパティエディタの「追加」をクリックします。ロケール、文字セットをアプリケーションにあわせてセットして、「了解」をクリックします。文字セットは、環境に合わせて設定してください(EUC-JP、Shift_JISなど)


dev25.jpg

「了解」をクリックして終了です


前のページ | 1 2 3 4 5 6 | 次のページ

[高山義泉,ITmedia]