Ajaxフレームワーク ユーザーズガイド |
目次 索引 |
第3章 通信フレームワーク | > 3.4 サーブレット連携機能(汎用通信方式) |
ここでは、JavaScriptアプリケーションからの送信データを受け取って処理を行うビジネスロジックの作成方法について説明します。
ビジネスロジックは、サーブレットとして作成します。
JavaBean(リクエスト用)の取得は、以下の手順で行います。
受け取ったリクエストパラメタに応じて、各業務処理を振り分けて実行します。
業務処理では、処理結果をJavaBeanに格納します。
RcfBeanConverterクラスのencodeメソッドで処理結果であるJavaBeanを文字列(JSON形式)に変換します。
変換した処理結果は、レスポンス(javax.servlet.http.HttpServletResponse)から出力ストリーム(java.io.PrintWriter)を取得し、出力ストリームへ出力します。
以下に、ビジネスロジックの記述例を示します。
package mypkg; import java.io.IOException; import java.io.PrintWriter; 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.RcfContext; import com.fujitsu.interstage.rcf.converter.RcfBeanConverter; import com.fujitsu.interstage.rcf.http.RcfServletHelper; public class MyHandler extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // JavaBean(リクエスト用)の取得 ServletContext context = getServletContext(); RcfContext rcfContext = RcfServletHelper.getRcfContextFrom(context); RcfBeanConverter conv = new RcfBeanConverter(rcfContext); String reqStr = req.getParameter("obj"); RequestBean reqBean = new RequestBean(); try { conv.decode(reqStr, reqBean); } catch (Exception e) { // 例外発生時の処理 ...; } // 業務ロジックの呼出し ResponseBean resBean = null; String cmd = req.getParameter("command"); if ("init".equals(cmd)) { // 初期処理の呼出し resBean = init(reqBean); } else if ("execute".equals(cmd)) { // 実行処理の呼出し ...; } // JavaBean(レスポンス用)の出力 res.setContentType("application/json; charset=UTF-8"); res.setStatus(HttpServletResponse.SC_OK); try { String resStr = conv.encode(resBean); PrintWriter wrt = res.getWriter(); wrt.print(resStr); } catch (Exception e) { // 例外発生時の処理 ...; } } } |
目次 索引 |