付録F.1 JavaBean版
- 〈この項の構成〉
-
(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>
ページの先頭へ