| Apdesigner プログラマーズガイド |
目次
索引
![]()
|
| 第2部 アプリケーション開発編 | > 第5章 アプレットを開発する | > 5.4 サーブレットと連携するアプレットを開発する |
アプレットから直接サーブレットを呼び出す方法を説明します。
サーブレットと直接連携する場合、ADServletConnectionクラスを使用します。
ADServletConnection servletConn = new ADServletConnection(
new URL(getDocumentBase(), "servletname"));
サーブレットに送信するパラメタは、java.util.Hashtableクラスに格納して、callServlet()メソッドで、サーブレットを起動します。
結果をjava.util.Hashtableクラスで受け取ります。
// Hashtableを作成し、パラメタ"ID"を追加します。
Hashtable param = new Hashtable();
param.put("ID", "s123");
// サーブレットを実行し、結果を現在のウィンドウに表示します。
Hashtable result = servletConn.callServlet(param);
// 結果から"code"、"name"の2つのデータを取り出します。
String code = (String)result.get("code");
String name = (String)result.get("name");
アプレットとサーブレットを直接連携させる場合は、サーブレットの出力をHTMLではなくテキスト形式にします。結果のテキストは、"パラメタ名=値"の形式で出力します。例を以下に示します。
code=ABC1234 name=Sato
Apworksでサーブレットを作成する場合は、実装するメソッドとして"service"を選択します。次に、生成後のパラメータクラスを以下のように修正します。
public void setRequest(HttpServletRequest req) throws Exception {
_req = req;
// ここから修正します。
/* 自動生成するソースをコメントアウトします。
//{{SRVWIZ_GENERATE(DATAINIT)
if ((text1 = getParameter("text1")) == null) {
text1 = "";
}
if ((text2 = getParameter("text2")) == null) {
text2 = "";
}
//{{SRVWIZ_GENERATE
*/
// リクエストからパラメタを取り出します。
ObjectInputStream ois = new ObjectInputStream(req.getInputStream());
Hashtable param = (Hashtable)ois.readObject();
ois.close();
// 個々のパラメタを取得します。
// これは一例です。実際のパラメタに合わせて修正します。
if ((text1 = (String)param.get("text1")) == null) {
text1 = "";
}
if ((text2 = (String)param.get("text2")) == null) {
text2 = "";
}
// ここまで修正します。
}
Apworks以外で開発されたサーブレットは、サーブレットに送信するパラメタやサーブレットから受信するデータに独自の形式を使用している場合があります。このようなサーブレットと連携する場合は、ADServletConnectionの基本メソッドを使用します。
ADServletConnection servletConn = ADServletConnection(
new URL(getDocumentBase(), "servletname"));
// サーブレットに接続します。
servletConn.connect();
// コマンドを送信します。
servletConn.sendCommand(commandBytes);
// データを受信するストリームを取得します。
InputStream stream = servletConn.getResponse();
// データを受信します。
result = stream.read();
...
// ストリームのクローズを行います。
stream.close();
// 接続解除します。
servletConn.close();
目次
索引
![]()
|