Domino の Java プログラム 講座 (初級編 CGI変数の取得)

Web ユーザーが文書を保存するときや既存の文書を開くときには、ドミノ Web サーバーは CGI 変数を使ってユーザーに関する情報を収集します。

この CGI変数には以下のようなものがあります。

CGI変数の一覧

この CGI変数に Java からアクセスするためのやり方をエージェントを例にとって紹介しています。

CGI変数と同じ名前のフィールドを作成し、表示用の計算結果フィールドかなにかにしておくと、自動的に取得することもできます。
詳しくはノーツドミノヘルプを見てください。

agentContext に対して getDocumentContext でドキュメントの情報を取得します。
この時、ノーツクライアントなどで文書が選択された状態であれば、こちらに紹介したように選択された文書の情報を取得します。
ブラウザーからエージェントが起動された場合は、CGI変数のみを含んだ新規のドキュメントが作成されて参照されます。

ブラウザーから起動させれば、CGI変数用のフィールドに作成しなくても参照できるわけです。

getDocumentContext で取得したドキュメントに対して、CGI変数と同じ名前のフィールドに対して getItemValueString を実行すると該当の CGI変数の値が得られます。

import lotus.domino.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

// (Your code goes here)
Document doc = agentContext.getDocumentContext();

getAgentOutput().println("Content-type: text/html");
getAgentOutput().println("<br><br>");
getAgentOutput().println("<h2>CGI変数の表示</h2><br>");
getAgentOutput().println("HTTP_User_Agent ==> " + doc.getItemValueString("HTTP_User_Agent")+"<br>");
getAgentOutput().println("HTTPS ==> " + doc.getItemValueString("HTTPS")+"<br>");
getAgentOutput().println("Path_Info ==> " + doc.getItemValueString("Path_Info")+"<br>");
getAgentOutput().println("Path_Translated ==> " + doc.getItemValueString("Path_Translated")+"<br>");
getAgentOutput().println("Query_String ==> " + doc.getItemValueString("Query_String")+"<br>");
getAgentOutput().println("Server_Name ==> " + doc.getItemValueString("Server_Name")+"<br>");
getAgentOutput().println("Server_Software ==> " + doc.getItemValueString("Server_Software")+"<br>");
getAgentOutput().println("Server_Protocol ==> " + doc.getItemValueString("Server_Protocol")+"<br>");
getAgentOutput().println("Server_Port ==> " + doc.getItemValueString("Server_Port")+"<br>");
getAgentOutput().println("Server_URL_Gateway_Interface ==> " + doc.getItemValueString("Server_URL_Gateway_Interface")+"<br>");
// getAgentOutput().println("Remote_Addr ==> " + doc.getItemValueString("Remote_Addr")+"<br>");
getAgentOutput().println("Remote_Host ==> " + doc.getItemValueString("Remote_Host")+"<br>");
getAgentOutput().println("Remote_User ==> " + doc.getItemValueString("Remote_User")+"<br>");
getAgentOutput().println("Remote_Ident ==> " + doc.getItemValueString("Remote_Ident")+"<br>");

} catch(Exception e) {
e.printStackTrace();
}
}
}

こちらが実行結果の例です。

[Top Pageに戻る]

Ads by TOK2