例 #1: クライアントの IP アドレスに基づく LU 名の指定変更

管理者は、セッション定義に直接 LU 名を指定しないようにすることができます。この例では、クライアントの IP アドレスを使用して、テキスト・ファイル内にリストされた LU 名を検索し、 それをセッション内の指定変更値として使用する簡単な方法を示します。

この例は、JSP を使用して作成されています。デプロイメント・ウィザードが、 3270 ディスプレイおよび 5250 ディスプレイと呼ばれる 2 つのセッションを含む HTML ファイルを作成するために使用されました。Z and I Emulator for Web 7 以降では、いくつかの HTML が JavaScript を使用して生成され、HTML パラメーターは JavaScript の配列内で指定されるか、または JavaScript の document.write ステートメントを使用して指定されることに注意してください。また、HTML のフォーマットは、クライアントによっても異なります。

この例では、開始位置としてキャッシュ Java ページを使用しており、HTML の指定変更に対する必要な変更は太字で表示してあります。デプロイメント・ウィザードがキャッシュ Java2 ページを生成するために使用される時、 それは以下のファイルを生成します。
  • Example1.html
  • z_Example1.html
  • Example_J2.html
Macintosh クライアントは、Example_J2.html ページを利用します。
IP アドレス / LU 名のペアを含むファイル (c:\luname.table) が読み取られます。クライアントの IP アドレスが、「3270 ディスプレイ」セッションで指定変更される正しい LU 名を検索するために使用されます。詳細は、例に含まれるコメントを参照してください。デプロイメント・ウィザードの出力へ追加した行は、太字で表示してあります。
<!doctype html public "-//W3C//DTD HTML 3.2 Final//EN">
<%
//  Read the luname.table file into a properties variable.
//  The luname.table file contains lines in the following format:
//    ipaddress=luname
Properties lunames = new Properties();
lunames.load(new FileInputStream("c:\\luname.table"));
%>
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- TITLE Begin -->
<TITLE>Example1 page title</TITLE>
<!-- TITLE End -->
<!-- SUMMARY Begin -->
<!--
Configuration Model
	What configuration model would you like to use?
	-HTML-based model
Host Sessions 
	-3270 Display
	-5250 Display
Additional Options
	-Cached = Cached client
	-Java Type = java2
Disable Functions
Preload Options
	-5250 Sessions = True
	-Change Session Properties = True
	-3270 Sessions = True
Web Start Options
	Basic Options
	-Debug = False
	-Height (in pixels) = 250
	-Width  (in pixels) = 550
	Upgrade Options
	-Percent of users who can upgrade by default = 100
	-Prompt user (user decides foreground or background)
Advanced Options
	HTML parameters
	-None
	Code base
	- /zieweb/
	HTML templates
	-Default
	Problem determination
	-Debug = False
	User updates
	-Persist user updates? = True
	Appearance
	-Standard Z and I Emulator for Web Client
	Server connection
	Language
	-Locale = Use the system Locale
	Maximum sessions
	- 26
-->
<!-- SUMMARY End -->
</HEAD>
<CENTER>
<P>


<SCRIPT LANGUAGE="JavaScript">
function writeAppletParameters()
{
   return "";
}
</SCRIPT>


<SCRIPT LANGUAGE="JavaScript" SRC="/zieweb/ziewebversion.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/zieweb/CommonJars.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/zieweb/CommonParms.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/zieweb/CommonJ2Parms.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
var db = parent.location;
var zie_Locale = '';
var zie_AppName ='';
var zie_AppHgt = '340';
var zie_AppWid = '550';
var zie_CodeBase = '/zieweb/';
var zie_Comps = 'HABASE;ZIEBASE;ZIEIMG;HACP;HAFNTIB;HAFNTAP;HA3270;ZIECFG;HA5250';
var zie_Archs = 'habasen.jar,ziebasen.jar,zieimg.jar,hacp.jar,hafntib.jar,hafntap.jar,
                 ha3270n.jar,ziecfgn.jar,ha5250n.jar';

var zie_URL = new String(window.location);
var zie_DebugOn = false;
var hZie_AppletParams = new Array;
hZie_AppletParams[1] = '<PARAM NAME="ShowDocument"      VALUE="_parent">';
hZie_AppletParams[3] = '<PARAM NAME="ParameterFile"     VALUE="ZIEWebData\\Example1\\params.txt">';
hZie_AppletParams[4] = '<PARAM NAME="JavaScriptAPI"     VALUE="false">';
hZie_AppletParams[5] = '<PARAM NAME="BookmarkPage"      VALUE="Example1.html">';

// The next 2 lines are required in order to override session properties.
//  The first line turns on the processing for this function and does not 
//  need to be modified.  The second line identifies the sessions that you
//  want to change.  In this example, there are 2 sessions identified 
//  named: "3270 Display" and "5250 Display".
 
hZie_AppletParams[6]='<PARAM NAME="EnableHTMLOverrides" VALUE="true">';
hZie_AppletParams[7]='<PARAM NAME="TargetedSessionList" VALUE="3270 Display,5250 Display">';
 
// The following line changes the LUName session parameter for the session named
//  "3270 Display".  In this example, the LUName is being set to the value   
//  contained in the c:\luname.table for the IP address of the client.
//  When you are initially testing your changes, you may want to use a constant
//  value to verify that the syntax is correct before you insert your 
//  calculations.
hZIe_AppletParams[8]='<PARAM NAME="Luname" VALUE="3270 
                       Display=<%=lunames.get(request.getRemoteAddr())%>">';

//hZie_AppletParams[x] = '<PARAM NAME="DebugCode"              VALUE="65535">';


var pg = buildJ2Page(db);
pg += writeAppletParameters();
pg += '</APPLET>';
if(zie_DebugOn) alert('J2 page complete, result = \n' + pg);
document.write(pg);
</SCRIPT>

</CENTER>
</BODY>
</HTML>