付録H.1 TP1/Client/PおよびTP1/Client/W版
- 〈この項の構成〉
-
(1) COBOL引数の登録集原文とCOBOLプログラム例
入力用COBOL引数の登録集原文例
01 PERSONAL-DATA-IN.
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引数の登録集原文例
01 PERSONAL-DATA-OUT.
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(100).
COBOLプログラム例
*>*************************************************
*> COBOL SPP(Search) *
*>*************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. SEARCHTP1.
DATA DIVISION.
LINKAGE SECTION.
COPY SEARCHTP1COPYIN.
*> 01 PERSONAL-DATA-IN.
*> 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).
77 IN-LEN PIC S9(9) USAGE COMP.
COPY SEARCHTP1COPYOUT.
*> 01 PERSONAL-DATA-OUT.
*> 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(100).
77 OUT-LEN PIC S9(9) USAGE COMP.
PROCEDURE DIVISION USING PERSONAL-DATA-IN IN-LEN
PERSONAL-DATA-OUT OUT-LEN.
MOVE P-NUMBER IN PERSONAL-DATA-IN TO P-NUMBER IN
PERSONAL-DATA-OUT.
*> 検索処理
IF P-NUMBER IN PERSONAL-DATA-IN = 100001 THEN
MOVE '日立 一郎' TO P-NAME IN PERSONAL-DATA-OUT
MOVE '日立市' TO P-ADDRESS IN PERSONAL-DATA-OUT
MOVE '/ICHIRO.GIF' TO P-GIF IN PERSONAL-DATA-OUT
ELSE
IF P-NUMBER IN PERSONAL-DATA-IN = 100002 THEN
MOVE '日立 二郎' TO P-NAME IN PERSONAL-DATA-OUT
MOVE '久留米市' TO P-ADDRESS IN PERSONAL-DATA-OUT
MOVE '/JIRO.GIF' TO P-GIF IN PERSONAL-DATA-OUT
ELSE
MOVE '登録されていません' TO P-NAME IN
PERSONAL-DATA-OUT
MOVE SPACE TO P-ADDRESS IN PERSONAL-DATA-OUT
MOVE '/NOREGIST.GIF' TO P-GIF IN PERSONAL-DATA-OUT
END-IF
END-IF.
EXIT PROGRAM.
END PROGRAM SEARCHTP1.
ページの先頭へ
(2) Java UAP(Servlet)例
package test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.beans.Beans;
import jp.co.hitachi_sk.j2cb.*;
//数字項目(外部10進項目,内部10進項目および小数けたを含む2進項目)を
//使用する場合は,以下のようにjava.math.BigDecimalをimportしてください。
//import java.math.BigDecimal;
public class SearchTP1Servlet 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");
SearchTP1 bean = null;
TP1Access baseBean = null;
try {
//Beanのインスタンス生成
bean = (SearchTP1) Beans.instantiate(this.getClass().
getClassLoader(),"test.SearchTP1");
baseBean = (TP1Access) Beans.instantiate(
this.getClass().getClassLoader(),
"jp.co.hitachi_sk.j2cb.TP1Access");
} catch (ClassNotFoundException excp) {
excp.printStackTrace();
return;
}
try {
int[] idArr = new int[1];
String[] host = new String[8];
baseBean.cltin(idArr,null, "Hostname", "guest",null,
host, 0);
baseBean.open(idArr[0], 0);
/* Beanにパラメタを設定 */
bean.setP_numberI(new Integer(number));
bean.setP_nameI("");
bean.setP_addressI("");
bean.setP_gifI("");
try {
bean.call(idArr[0], "SAMPLE", "SEARCHTP1", 0);
} catch (Exception e) {
baseBean.close(idArr[0], 0);
baseBean.cltout(idArr[0], 0);
e.printStackTrace();
return;
}
baseBean.close(idArr[0], 0);
baseBean.cltout(idArr[0], 0);
//JSP中で"bean"という名称でプロパティを参照できるようにする。
req.setAttribute("bean",bean);
//ここでJSPを呼びます
javax.servlet.RequestDispatcher rd =
c.getRequestDispatcher("/SearchTP1.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>
SearchTP1
</TITLE>
</HEAD>
<BODY>
<h3><center>TP1/COBOL adapter for Cosminexus のサンプル</center></h3>
<center>100001 と 100002が登録されています。
<FORM action=/servlet/test.SearchTP1Servlet method="POST">
Number:<input type="text" name="Number" value="100001">
<BR><BR> Submit を押すと servlet SearchTP1Servlet を実行
<BR><BR><input type=submit value="Submit"></form>
</center>
</BODY>
</HTML>
ページの先頭へ
(4) JSPの作成例
<!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.SearchTP1" />
<html>
<center>Result of Search.
<table border="1">
<tr><td colspan="2" align="center">
<jsp:getProperty name="bean" property="p_numberO" />
</td><tr><td>Name</td><td>
<jsp:getProperty name="bean" property="p_nameO" />
</td><tr><td>Address</td><td>
<jsp:getProperty name="bean" property="p_addressO" />
<tr><td colspan="2" align="center">
<img src="../servlet<jsp:getProperty name="bean" property="p_gifO" />">
</td></table>
</center>
</html>
ページの先頭へ