COBOL2002 Cosminexus連携機能ガイド

[目次][用語][索引][前へ][次へ]

付録G.1 JavaBean版

<この項の構成>
(1) COBOL引数の登録集原文とCOBOLプログラム例
(2) Servlet(Java UAP)例
(3) HTMLの作成例
(4) JSPの作成例

(1) COBOL引数の登録集原文とCOBOLプログラム例

 
COBOL引数の登録集原文例
       01 PERSONAL-DATA.
         05 P-NUMBER   PIC 9(9) USAGE COMP.
         05 P-NAME     PIC X(50).
         05 P-ADDRESS  PIC X(100).
         05 P-GIF      PIC X(50).
 
COBOLプログラム例
      *>****************************************************
      *>    COBOLサンプルプログラム(Search)                *
      *>****************************************************
       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     SEARCHCBL.
       DATA            DIVISION.
       LINKAGE SECTION.
         COPY SEARCHCBLCOPY.
      *>  01 PERSONAL-DATA.
      *>    05 P-NUMBER   PIC 9(9) USAGE COMP.
      *>    05 P-NAME     PIC X(50).
      *>    05 P-ADDRESS  PIC X(100).
      *>    05 P-GIF      PIC X(50).
 
       PROCEDURE DIVISION USING PERSONAL-DATA.
 
      *>   検索処理
           IF P-NUMBER=100001 THEN
             MOVE '日立 一郎' TO P-NAME
             MOVE '日立市' TO P-ADDRESS
             MOVE '/ICHIRO.GIF' TO P-GIF           
           ELSE
             IF P-NUMBER=100002 THEN
               MOVE '日立 二郎' TO P-NAME
               MOVE '久留米市' TO P-ADDRESS
               MOVE '/JIRO.GIF' TO P-GIF
             ELSE
               MOVE '登録されていません' TO P-NAME
               MOVE SPACE TO P-ADDRESS
               MOVE '/NOREGIST.GIF' TO P-GIF
             END-IF
           END-IF.
           EXIT  PROGRAM.
 
       END PROGRAM  SEARCHCBL.

(2) Servlet(Java UAP)例

 
package test;
 
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.beans.Beans;
import jp.co.hitachi_sk.j2cb.*;
 
public class SearchCBLServlet extends HttpServlet {
  private static final long serialVersionUID = 0L;
  ServletContext c;
 
  //グローバル変数の初期化
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    c=config.getServletContext();
  }
 
  //HTTP Get リクエストの処理
  public void doGet(HttpServletRequest req, HttpServletResponse res)
                         throws ServletException, IOException {
    String number="";
    try {
      number=req.getParameter("Number");
    } catch (Exception e) {
      e.printStackTrace();
    }
 
    res.setContentType("text/html; charset=shift_jis");
 
    SearchCBL bean=null;
    try {
      //Beanのインスタンス生成
      bean=(SearchCBL) Beans.instantiate(
                            this.getClass().getClassLoader(),
                            "test.SearchCBL");
    } catch (ClassNotFoundException excp) {
      excp.printStackTrace();
      return;
    }
 
    try {
 
      /* Beanにパラメタを設定 */
      try {
        bean.setP_number(new Integer(number));
      } catch (NumberFormatException e) {
        bean.setP_number(new Integer(0));
      }
      bean.setP_name("");
      bean.setP_address("");
      bean.setP_gif("");
 
      bean.callCOBOL();
 
      //JSP中で"bean"という名称でプロパティを参照できるようにする。
      req.setAttribute("bean",bean);
      //ここでJSPを呼びます
      javax.servlet.RequestDispatcher rd =
                c.getRequestDispatcher("/SearchCBL.jsp");
      rd.forward(req, res);
 
    } catch (J2CBException e) {
      e.printStackTrace();
      return;
 
    }
}
 
 
  //HTTP Post リクエストの処理
  public void doPost(HttpServletRequest request, HttpServletResponse response)
                                        throws ServletException, IOException {
    doGet(request, response);
  }
 
}
 

(3) HTMLの作成例

 
<HTML>
  <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis">
    <TITLE>
      Search
    </TITLE>
  </HEAD>
  <BODY>
    <h3><center>COBOL adapter for Cosminexusのサンプル</center></h3>
    <center>100001 と 100002が登録されています。
      <FORM  action=/servlet/test.SearchCBLServlet method="POST">
        Number:<input type="text" name="Number" value="100001">
        <BR><BR> Submit を押すと servlet SearchCBLServlet を実行
        <BR><BR><input type=submit value="Submit"></form>
    </center>
  </BODY>
</HTML>

(4) JSPの作成例

 
<%-- This is a JSP of the SEARCH CBL sample. --%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<%@ page contentType="text/html; charset=shift_jis"
                    import="jp.co.hitachi_sk.j2cb.J2CBException" %>
<jsp:useBean id="bean" scope="request" class="test.SearchCBL" />
<html>
<center>Result of Search.
<table border="1">
<tr><td colspan="2" align="center">
     <jsp:getProperty name="bean" property="p_number" />
</td><tr><td>Name</td><td>
     <jsp:getProperty name="bean" property="p_name" />
</td><tr><td>Address</td><td>
     <jsp:getProperty name="bean" property="p_address" />
<tr><td colspan="2" align="center">
<img src="../servlet<jsp:getProperty name="bean" property="p_gif" />"> 
</td></table>
</center>
</html>