Net.Data 提供含有 Net.Data 函數的 servlet 及 NetObjects Fusion 外掛程式, 可用於 Java 環境。使用 servlet 及外掛程式,您可以:
本節說明下列 servlet 主題:
Net.Data 提供 servlet, 以協助您使用 Java 環境來開發與管理巨集。servlet 是 Java 類別, 可執行類似於 CGI 程式或 Web 伺服器 API 外掛程式的角色。servlet 係被具有 Java servlet 能力的 Web 伺服器用來建立 HTML 頁面。servlet 並沒有它們自己的圖形使用者介面, 但可區域性 (或透過網路) 並動態地載入它們的類別, 且可使用 URL 位址 (遠端) 或類別名稱 (區域) 予以呼叫。 servlet 可供 Windows NT 與 AIX 作業系統使用。
Net.Data servlet 是 Java 式的外層, 執行的是使用原始 DLL 檔的 Net.Data 2 版巨集或直接要求。 這些 servlet 可讓您執行舊有的巨集 (MacroServlet) 或單一函數 (FunctionServlet)。要使用這些 servlet 必須要有 Net.Data版本 2。 Net.Data servlet 可執行資料庫或非資料庫語言環境, 且可與「現場連線」搭配執行。
servlet 是隨 API 而來,可與應用程式搭配使用。 servlet API 的資訊是與 Net.Data 書寫在一起。請參閱 <inst_dir>/servlet/NetDataservlet.jar 檔, 以取得 API 說明文件。
Net.Data 提供兩種 servlet:
使用巨集 servlet 與透過 CGI-BIN 介面執行 Net.Data 巨集類似, 不同的是您是透過 Java servlet 來執行巨集。巨集 servlet 需要安裝 Net.Data 版本 2 或更新版本。
使用巨集 servlet 的優點包括:
巨集 servlet 也容許異質資料庫 (如 DB2 及 Oracle) 的原始存取,以及不同的語言環境 (如 Perl、REXX 及 Java)。
函數 servlet 需要安裝 Net.Data 版本 2。
Net.Data servlet 可用兩種方式執行:一種是從 URL, 另一種是當成 HTML 檔案的 SSI。您可使用 NetObjects Fusion 外掛程式將 Net.Data servlet 納入 NOF 地點中。下列各節討論的是如何藉由鍵入 servlet 的語法, 來修改與執行 servlet。請參閱附錄 E, 搭配使用 NetObjects Fusion NOF 外掛程式與 Net.Data servlet, 以學習如何使用 NetObjects Fusion 來修改與執行 servlet。
在 HTML 檔案中,請使用下列其中一個語法選項來輸入 servlet 參數:
http://myserver/servlet/com.ibm.netdata.servlet.Macroservlet ?MACRO=macro_value&BLOCK=block_value&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlet.Macroservlet ?MACRO=my_macro&BLOCK=my_block&field1=custno
<servlet code="com.ibm.netdata.servlet.Macroservlet"> <param name="MACRO" value="macro_value"> <param name="BLOCK" value="block_value"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlet.Macroservlet"> <param name="MACRO" value="my_macro.d2w"> <param name="BLOCK" value="report"> <param name="field1" value="custno"> </servlet>
參數:
<param name="field1" ...
... value="custnum"
HTMLPATH 參數:如果獲得的錯誤訊息指出 HTMLPATH 參數遺失, 請將 HTMLPATH 參數新增到 servlet 呼叫指令中:
http://myserver/servlet/com.ibm.netdata.servlet.Macroservlet ?MACRO=macro_name&BLOCK=block_value&htmlpath=html_path&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlet.Macroservlet?MACRO=my_macro &BLOCK=my_blockhtmlpath=e:\html&field1=custno
<servlet code="com.ibm.netdata.servlet.Macroservlet"> <param name="MACRO" value="macro_value"> <param name="BLOCK" value="block_value"> <param name="htmlpath" value="html_path"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlet.Macroservlet"> <param name="MACRO" value="my_macro"> <param name="BLOCK" value="my_block"> <param name="htmlpath" value="e:\html"> <param name="field1" value="custno"> </servlet>
OUTBUFLEN 參數:如果您的巨集結果大於 32 KB, 請須設定 OUTBUFLEN 參數。 必要時若無法設定這些參數可能會造成無法預期的結果。
http://myserver/servlet/com.ibm.netdata.servlet.Macroservlet ?MACRO=macro_name&BLOCK=block_value &OUTBUFLEN=output_buffer_size&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlet.Macroservlet?MACRO=my_macro &BLOCK=my_block&OUTBUFLEN=48&field1=custno
<servlet code="com.ibm.netdata.servlet.Macroservlet"> <param name="MACRO" value="macro_value"> <param name="BLOCK" value="block_value"> <param name="OUTBUFLEN" value="output_buffer_size"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlet.Macroservlet"> <param name="MACRO" value="my_macro"> <param name="BLOCK" value="my_block"> <param name="OUTBUFLEN" value="48"> <param name="field1" value="custno"> </servlet>
函數 servlet 可以使用直接要求,呼叫 Net.Data 來執行函數 (如 REXX 函數) 或 SQL 陳述式。 您對 servlet 設定的參數取決於您要執行函數或 SQL 陳述式而定。 在 HTML 檔案中,請使用下列其中一個語法選項來輸入 servlet 參數:
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=lang_env_name&FUNC=program_name&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=DTW_REXX&FUNC=my_rexx&field1=custno
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=database_lang_env_name&SQL=SQL_statement &DATABASE=database_name&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=DTW_SQL&SQL=select+*+from+myTable&DATABASE=CELDIAL
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="lang_env_name"> <param name="FUNC" value="program_name"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="DTW_REXX"> <param name="FUNC" value="myREXX"> <param name="field1" value="custno"> </servlet>
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="lang_env_name"> <param name="SQL" value="SQL_stmt_name"> <param name="DATABASE" value="database_name"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="DTW_SQL"> <param name="SQL" value="select * from employee"> <param name="DATABASE" value="CELDIAL"> </servlet>
參數:
HTMLPATH 參數:如果獲得的錯誤訊息指出 HTMLPATH 參數遺失, 請將 HTMLPATH 參數新增到 servlet 呼叫指令中:
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=lang_env_name&FUNC=program_name&htmlpath=html_path &parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=DTW_REXX&FUNC=my_rexx&htmlpath=e:\html&field1=custno
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="lang_env_name"> <param name="SQL" value="SQL_stmt_name"> <param name="htmlpath" value="html_path"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="DTW_SQL"> <param name="SQL" value="select * from employee"> <param name="htmlpath" value="e:\html"> <param name="field1" value="custno"> <param name="DATABASE" value="SAMPLE"> </servlet>
其中 html_path 指定的是 Web 伺服器根 HTML 目錄的路徑; 例如:htmlpath=e:\html。
OUTBUFLEN 參數:如果您的巨集結果大於 32 KB, 則您必須設定 OUTBUFLEN 參數。 必要時若無法設定這些參數可能會造成無法預期的結果。
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=lang_env_name&FUNC=program_name&OUTBUFLEN=output_buffer_size &parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlet.Functionservlet ?LANGENV=DTW_REXX&FUNC=my_rexx&OUTBUFLEN=48K&field1=custno
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="lang_env_name"> <param name="FUNC" value="program_name"> <param name="OUTBUFLEN" value="output_buffer_size"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlet.Functionservlet"> <param name="LANGENV" value="DTW_REXX"> <param name="FUNC" value="my_rexx"> <param name="OUTBUFLEN" value="48K"> <param name="field1" value="custno"> </servlet>