動的 Web プロジェクトを作成する

このプロジェクトには、ディプロイ記述子、JSP ビュー、およびWeb アプリケーションの大部分を含む JVM COBOL プロジェクトから作成された .jar アーカイブが含まれます。

JSPBook プロジェクトの作成

  • [File > New > Project] をクリックして、新規プロジェクト・ウィザードを起動します。
  • [Web > Dynamic web project] を選択して、[Next] をクリックします。
  • [Project name] を JSPBook に設定します。[Target runtime] には、Apache Tomcat v7.0 を選択します。このオプションが存在しない場合は、[New Runtime] をクリックし、[New Server Runtime Environment] ダイアログ・ボックスで Apache Tomcat v7.0 を選択してから、[Next] を選択します。
  • [Tomcat installation directory] を、Micro Focus JVM COBOL ファイル処理を扱うように設定された Tomcat のインストールに向けます。
  • プロジェクトに適した JRE を選択します。これは、インストールされた JVM COBOL ランタイムと同じビット体系のものである必要があります。
  • [Finish] を 2 回クリックしてプロジェクトを作成します。

ディプロイ記述子 (web.xml)

このファイルは、Web URL をサーブレットと JSP にバインドします。CobolBookReader プロジェクトで作成する コントローラ・サーブレットに Web アプリケーションのランディング・ページをリンクする記述子を作成します。

  1. [COBOL Explorer] ビューで JSPBook プロジェクトを展開します。
  2. WebContent ノードを展開します。
  3. WEB-INF を右クリックして、[New > Other] を選択します。
  4. XML オプションを展開して [XML File] を選択し、[Next] をクリックします。
  5. web.xml を [Name] として入力し、[Finish] をクリックします。Eclipse の XML 設計ビューに web.xml ファイルが開きます。
  6. エディタ・ウィンドウの下部にある [Source] タブをクリックして、ソース・ビューに切り替えます。テンプレートの内容を次のコードで上書きします。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    
    <display-name>JSPBook</display-name>
    
    <servlet>
    <servlet-name>BookServlet</servlet-name>
    <servlet-class>com.microfocus.book.BookServlet</servlet-class>
    </servlet>
      
    <servlet-mapping>
    <servlet-name>BookServlet</servlet-name>
    <url-pattern>/book</url-pattern>
    </servlet-mapping>
      
    <welcome-file-list>
    <welcome-file>book</welcome-file>
    </welcome-file-list>
    
    </web-app>

これは、Web アプリケーションのディプロイ方法を表します。<web-app> ノードの属性は、web.xml フォーマットの定義に使用される各種スキーマを意味します。それらの属性は次のとおりです。

<display-name>
ディプロイされたアプリケーションが Tomcat で参照される際の名前が含まれています。
<servlet>
名前を Web アプリケーション内の特定のサーブレット・クラスに付け加えます。このケースでは、CobolBookReader プロジェクトで作成された com.microfocus.book.BookServlet をサーブレット名 BookServlet に付け加えます。
<servlet-mapping>
URL を特定のサーブレットに付け加えます。このケースでは、Web アプリケーション・ルートの book 子を BookServlet に向けさせています。
<welcome-file-list>
URL をデフォルト・ページとして選択します (このケースでは book 子)。BookServlet ルートへの移動は、book URL への移動に相当します。

アプリケーション・ビュー (BookJsp.jsp)

ビューを形成する JSP が含まれるファイルを作成する必要があります。JSP は、インライン Java コードを可能にする HTML の方言です。バックグラウンドでは、JSP はサーブレット・クラスにコンパイルされます。

このファイルでは、HTML 内の適切な場所でサーブレット属性の出力を可能にする JSP 構文のサブセットが使用されます。CobolBookReader で BookJsp を呼び出せるようにするには、サーブレット転送を使用します。CobolBookReader は、要求された処理を実行してから、適切なサーブレット属性を設定し、表示用に呼び出しを BookJsp に転送します。

  1. JSPBook プロジェクトの [WebContent] ノードを右クリックします。
  2. [New] を選択し、次に [Other] を選択します。
  3. [Web] オプションを展開し、[JSP File] を選択して、[Next] をクリックします。
  4. BookJsp.jsp を名前として入力し、[Finish] をクリックします。
  5. テンプレートの内容を次のコードで上書きします。
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!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=ISO-8859-1">
    <title>JSP Book Demo</title>
    </head>
    <body>
    <form name="input" action="/JSPBook/book" method="post">
    <table border="0">
    <tr>
    						     <td>Stock Number:</td>
    <td colspan="7"><input type="text" name="stockno" value="${stockno}"/></td>
    </tr>
    <tr>
    <td>Title:</td>
    <td colspan="7"><input type="text" size="120" name="title" value="${title}"/></td>
    </tr>
    <tr>
    <td>Author:</td>
    <td colspan="7"><input type="text" size="120" name="author" value="${author}"/></td>
    </tr>
    <tr>
    <td>Type:</td>
    <td colspan="7"><input type="text" size="120" name="type" value="${type}"/></td>
    </tr>
    <tr>
    <td>Price:</td>
    <td><input type="text" name="price" value="${price}"/></td>
    <td>On Hand:</td>
    <td><input type="text" name="onhand" value="${onhand}"/></td>
    <td>Sold:</td>
    <td><input type="text" name="sold" value="${sold}"/></td>
    <td>Stock Value:</td>
    <td><input type="text" readonly="readonly" name="stockval" value="${stockval}"/></td>
    </tr>
    <tr>
    <td colspan="8">
    <input type="submit" name="submit" value="Read" />
    <input type="submit" name="submit" value="Add" />
    <input type="submit" name="submit" value="Delete" />
    <input type="submit" name="submit" value="Next" />
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

この単純な Web ページは、引数の入力に使用されるポスト・メソッド・フォームを符号化し、JSPBook アプリケーションからの結果を表示します。

注:

JSP 式言語は、サーブレットによって渡されてこの JSP に転送されるインライン属性を使用します。例えば、コントローラ・サーブレットが title=Lord of the Rings 属性を渡す場合、JSP は ${title} に遭遇するたびにそれを Lord of the Rings に置き換えます。

<form> ノードの action 属性は、 サーブレット・コントローラの web.xml によって指定された場所である URL /JSPBook/book を HTTP ポスト要求の宛先にします。