電子フォームをWebブラウザに表示する方法を学習していきます。
■このステップの概要
WebページからWebアプリケーションを起動して電子フォームを表示するシステムを作ります。

文字が表示されるだけの電子フォームを作成します。
Webアプリケーションを起動するためのボタンだけの簡単なWebページを作成します。
作成した電子フォームを表示するだけの処理を行うWebアプリケーションを作成します。
Webアプリケーション環境定義ファイル(deployment descriptor)を作成します。
WARファイルによるWebアプリケーションの配備に対応しているアプリケーションの場合は、Webアプリケーションの配置を容易に行うことができるようにWARファイルを作成します。
(1) 電子フォームを作成する
文字を表示するための電子フォームを電子フォームデザイナで作成します。スタティックテキスト項目が1個だけ挿入された電子フォームを作成します。
電子フォームを新規作成します。
ウィザードで新規作成する場合は、タイトル「電子フォーム」だけを指定して、ほかの項目は挿入しないで完了します。
ウィザードを使わないで新規作成した場合は、「電子フォーム」という文字列のスタティックテキスト項目を挿入します。
作成した電子フォームを「Step1」という名前で保存します。

(2) Webページを作成する
「Step1」という名前のWebアプリケーションを起動するための「Step1.htm」という名前のWebページを作成します。このWebページでは、Step1クラスをHTTPのgetメソッドで起動します。
Step1.htmの内容
<html> <head> <title>Step1 電子フォームを表示する</title> </head> <body> <h1>Step1 電子フォームを表示する</h1> <form action="servlet/Step1"> <input type="submit" name="送信" value="実行"> </form> </body> </html>
(3) Webアプリケーションを作成する
(2)で作成したWebページから起動されるWebアプリケーション(サーブレット)として「Step1」というクラスを作成します。
Step1クラスがWebページからgetメソッドで起動されると、doGet()メソッドが呼び出されます。そのため、doGet()メソッドにアプリケーションを記述します。
doGet()メソッドの引数には、requestオブジェクトと、responseオブジェクトがあります。requestオブジェクトはWebブラウザから送信されたデータを処理します。responseオブジェクトはWebブラウザに送信するデータを処理します。Step1クラスでは、responseオブジェクトだけを使用します。
Step1クラスでは、(1)で作成した電子フォームを表示するためにOutputDataBuilderクラスを使用します。電子フォームからHTMLデータを生成・出力するときには、OutputDataBuilderクラスのwrite()メソッドを使用します。
Step1クラスでは、例外が発生するとprintStackTrace()メソッドでスタック情報を表示します。実際のシステムに応用するときは、サーバの情報が漏れないよう、Webブラウザにはスタック情報や入力データが表示されないようにしてください。
Step1クラスのソースプログラム
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.fujitsu.form.OutputDataBuilder;
import java.io.IOException;
import javax.servlet.ServletException;
public class Step1 extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
try {
// OutputDataBuilderオブジェクトを生成します。
// 生成するときに電子フォーム名を指定します。
OutputDataBuilder odb =
new OutputDataBuilder(request, "Step1");
// 電子フォーム表示モードに環境定義モードを指定します。
odb.setDisplayMode(odb.DISPMODE_ENV);
// コンテントタイプを設定します。
response.setContentType(odb.getContentType());
// HTMLデータを生成し、Webブラウザへ送信します。
odb.write(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
}
(4) Webアプリケーション環境定義ファイルを作成する
Webアプリケーション環境定義ファイル(deployment descriptor)を作成します。
次に示すxmlファイルを作成し、「web.xml」という名前で保存します。
web.xmlファイルの内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
<web-app>
<servlet>
<servlet-name>Step1</servlet-name>
<servlet-class>Step1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Step1</servlet-name>
<url-pattern>/servlet/Step1</url-pattern>
</servlet-mapping>
</web-app>
(5) Webサーバに配置する
(1)~(4)で作成したファイルをWebサーバに配置します。
配置するファイル | 配置する場所 |
|---|---|
電子フォームのファイル
|
|
Webページのファイル |
|
Webアプリケーションをコンパイルしたクラスファイル |
|
Webアプリケーション環境定義ファイル |
|
(6) WARファイルを作成する
アプリケーションサーバによってはWARファイルを作成して、Webアプリケーションの配置を容易に行うことができます。Webアプリケーションの資産をWebサーバに配備するには、WARファイルを作成し、WARファイルをWebサーバに配備します。WARファイルは、Webアプリケーションを構成するファイルをすべてJAR形式でパッケージ化したファイルです。以下の手順でWARファイルを作成します。
jarコマンドを実行するために、Windowsの場合は、「コマンド プロンプト」を起動します。SolarisおよびLinuxの場合は、「端末エミュレータ」等を起動します。
Step1フォルダ配下に移動します。
次に示すコマンドを実行します。
|
「Step1.war」という名前でWARファイルを作成します。
次に示すコマンドを実行します。
jar cvf Step1.war *.htm WEB-INF |
(7) WARファイルを配備する
作成したWARファイルをアプリケーションサーバに配備します。配備の方法については、使用しているアプリケーションサーバのマニュアルを参照してください。
(8) 動作を確認する
Webブラウザで、アドレスに「http://localhost/Step1/Step1.htm」を指定して、[移動]ボタンをクリックします。

→Webページが表示されます。
[実行]ボタンをクリックします。

→文字だけの電子フォームが表示されます。
