Ajaxフレームワーク ユーザーズガイド |
目次 索引 |
第3章 通信フレームワーク | > 3.5 サーブレット連携機能(簡易通信方式) |
ここでは、JavaScriptアプリケーションからの送信データを受け取って処理を行うビジネスロジックの作成方法について説明します。
ビジネスロジックは、サーブレットとして作成します。
JavaBean(リクエスト用)の取得は、以下の手順で行います。
受け取ったリクエストパラメタに応じて、各業務処理を振り分けて実行します。
業務処理では、処理結果をJavaBeanに格納します。
JavaBean(リクエスト用)の取得で作成したインスタンスのsetResponseBeanメソッドを呼び出し、処理結果のJavaBeanをレスポンスに出力します。
このとき、引数には以下の情報を指定します。
JavaBeanがnullだった場合は、JavaScriptアプリケーションにnullが返却されます。
業務処理でエラーが発生した場合などで、クライアントに例外を返却したい場合は、JavaBean(リクエスト用)の取得で作成したインスタンスのsetExceptionメソッドを呼び出し、レスポンスに例外の情報を出力します。
このとき、引数には以下の情報を指定します。
例外の情報を出力すると、JavaScriptアプリケーションでは、errorHandlerコールバック関数が呼び出されます。errorHandlerの引数にはエラーコードRCF0907のエラーオブジェクトが渡されます。エラーオブジェクトのcauseプロパティには、setExceptionの引数に指定した例外の情報が格納されています。
なお、setResponseBeanメソッドでJavaBeanを返却しない場合は、setExceptionメソッドで例外を返却してください。また、setResponseBeanメソッドを実行して正常終了した場合は、setExceptionメソッドを呼び出さないでください。setExceptionメソッドを実行した場合は、setResponseBeanを呼び出さないでください。
以下に、ビジネスロジックの記述例を示します。
package mypkg; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fujitsu.interstage.rcf.http.RcfServletHelper; public class MyHandler extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException { // JavaBean(リクエスト用)の取得 ServletContext context = getServletContext(); RcfServletHelper helper = new MyHelper(context); RequestBean reqBean = null; try { reqBean = (RequestBean) helper.getRequestBean(req); } catch (Exception e) { // 例外発生時の処理 ...; } // 業務ロジックの呼出し ResponseBean resBean = null; String cmd = req.getParameter("command"); if ("init".equals(cmd)) { // 初期処理の呼出し resBean = init(reqBean); } else if ("execute".equals(cmd)) { // 実行処理の呼出し ...; } // JavaBean(レスポンス用)の出力 try { helper.setResponseBean(req, res, resBean); } catch (Exception e) { // 例外発生時の処理 ...; try { helper.setException(req, res, e); } catch (Exception ie) { // 例外発生時の処理 ...; } } } } |
目次 索引 |