jp.co.fujitsu.reffi.client.nexaweb.model
クラス HTTPRequestCore

java.lang.Object
  上位を拡張 jp.co.fujitsu.reffi.client.nexaweb.model.BaseModel
      上位を拡張 jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel
          上位を拡張 jp.co.fujitsu.reffi.client.nexaweb.model.HTTPRequestCore
すべての実装されたインタフェース:
NetServiceListener, Model

public class HTTPRequestCore
extends XalReturnPossibilityModel
implements NetServiceListener

[概 要]

同期、非同期HTTPリクエストを送信、レスポンス受信する為のモデルクラスです。

[詳 細]

[備 考]

使用例) ・同期通信でリモートサーバからxalファイルを受信、画面にレンダリングする TODO javadoc修正
        public class OpenChatAction extends BaseAction {

                @Override
                protected void reserveModels(List> models) {
                        // HTTP通信モデルを実行予約
                        models.add(HTTPRequestCore.class);
                } 

                @Override
                public void nextModel(int index, Model prev, Model next) throws Exception{
                        switch(index){
                                case 0:
                                        // サーバロジックの指定方法は任意(strutsでも自作F/Wでも可)
                                        ((HTTPRequestCore)next).setRequestUrl("webcontroller");
                                        ((HTTPRequestCore)next).addUrlParameters("forward.page", "/pages/chat.xal");
                                        break;
                        }
                }
        }
 
・非同期通信でリモートサーバからシリアライズオブジェクトを受信、テーブルに受信データを埋め込む
        public class InitializeTableWindowAction extends BaseAction {
        
                @Override
                protected void reserveModels(List> models) {
                        // HTTP通信モデルを実行予約
                        models.add(HTTPRequestCore.class);
                } 

                @Override
                public void nextModel(int index, Model prev, Model next) throws Exception {
                        switch(index) {
                                case 0:
                                        // サーバロジックの指定方法は任意(strutsでも自作F/Wでも可)
                                        ((HTTPRequestCore)next).setRequestUrl("webcontroller");
                                        ((HTTPRequestCore)next).addUrlParameters("model.fqcn", "demo.server.model.FetchTableDataModel");
                                        // 受信データを自動レンダリングさせない
                                        ((HTTPRequestCore)next).setRenderResponse(false);
                                        // 通信は非同期を指定
                                        ((HTTPRequestCore)next).setAsync(true);
                                        break;
                        }
                }

                @Override
                public void successForward(int index, Model model, Object result) throws Exception {
                        // モデル結果オブジェクトをHttpResponse型にキャスト
                        HttpResponse response = (HttpResponse)result;
                        // HttpResponseからシリアライズされたTableDataリストを取得
                        List data = (List)getSerializedHttpResponseContent(response);

                        // 設定対象データソースオブジェクトを取得
                        ObjectDataSource objectDataSource = getObjectDataSource("tableDataSource");
                        // データソースにサーバモデル結果を設定
                        objectDataSource.setSource(data);
                }
        }

 

[環 境] JDK 6.0 Update 11

Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.

作成者:
Project Reffi

コンストラクタの概要
HTTPRequestCore()
          [概 要] コンストラクタ [詳 細] [備 考]
 
メソッドの概要
 void addUrlParameters(String key, String value)
          [概 要] 「key=value」形式URLパラメータマップに要素を追加します。
protected  void asyncRequest(HttpRequest httpRequest, RequestService requestService)
          [概 要] 非同期HTTPリクエストを送信します。
 String getRequestMethod()
          [概 要] HTTPリクエストメソッドを取得します。
 String getRequestUrl()
          [概 要] HTTPリクエストするURLを取得します。
 Map<String,String> getUrlParameters()
          [概 要] 「key=value」形式URLパラメータマップを取得します。
 boolean isAsync()
          [概 要] 非同期リクエスト送信フラグ取得 [詳 細] サーバへの通信を非同期で実行するフラグを取得します。
 boolean isDynamicUrl()
          [概 要] 動的URLフラグ取得 [詳 細] URLを動的に生成してサーバへ送信を行うフラグを取得します。
 boolean isRenderResponse()
          [概 要] HTTPレスポンスをUIにレンダリングするかどうかのフラグを取得します。
protected  void mainproc()
          [概 要] 主処理です。
 void postRequest(String uri, HttpResponse response)
          [概 要] リクエスト送信後処理 [詳 細] リクエスト送信後の処理を行います。
 void postRequestFailed(String uri, NetServiceException e)
          [概 要] リクエスト送信失敗後処理 [詳 細] リクエスト送信失敗の後処理を行います。
 void removeUrlParameters(String key)
          [概 要] 「key=value」形式URLパラメータマップから要素を削除します。
 void requestCompleted(String uri, HttpResponse response)
          [概 要] リクエスト完了処理 [詳 細] リクエストが完了しレスポンスを受信した際の処理を行います。
 void requestFailed(String uri, NetServiceException e)
          [概 要] リクエスト失敗処理 [詳 細] リクエスト送信が失敗した場合の処理を行います。
 void setAsync(boolean async)
          [概 要] 非同期リクエスト送信フラグ設定 [詳 細] [備 考]
 void setDynamicUrl(boolean dynamicUrl)
          [概 要] 動的URLフラグ設定 [詳 細] URLを動的に生成してサーバへ送信を行うフラグを設定します。
 void setRenderResponse(boolean renderResponse)
          [概 要] HTTPレスポンスをUIにレンダリングするかどうかのフラグを設定します。
 void setRequestMethod(String requestMethod)
          [概 要] HTTPリクエストメソッドを設定します。
 void setRequestUrl(String requestUrl)
          [概 要] HTTPリクエストするURLを設定します。
 void setUrlParameters(Map<String,String> urlParameters)
          [概 要] 「key=value」形式URLパラメータマップを設定します。
protected  void syncRequest(HttpRequest httpRequest, RequestService requestService)
          [概 要] 同期HTTPリクエストを送信します。
 
クラス jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel から継承されたメソッド
addIdentifierToWindows, getCommunicateId, getEventSourceWindow, setCommunicateId, setEventSourceWindow
 
クラス jp.co.fujitsu.reffi.client.nexaweb.model.BaseModel から継承されたメソッド
addModelProcessListener, finalproc, fireModelFailure, fireModelFinished, fireModelSuccess, getController, getExecuteIndex, getListenerList, getParameterMapping, getResult, getSuccessCount, incrementSuccessCount, isSkip, postproc, preproc, removeModelProcessListener, run, setController, setExecuteIndex, setListenerList, setParameterMapping, setResult, setSkip, trap
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

HTTPRequestCore

public HTTPRequestCore()

[概 要]

コンストラクタ

[詳 細]

[備 考]

メソッドの詳細

getRequestUrl

public String getRequestUrl()

[概 要]

HTTPリクエストするURLを取得します。

[詳 細]

[備 考]

戻り値:
リクエストURL

setRequestUrl

public void setRequestUrl(String requestUrl)

[概 要]

HTTPリクエストするURLを設定します。

[詳 細]

[備 考]

パラメータ:
requestUrl - リクエストURL

getRequestMethod

public String getRequestMethod()

[概 要]

HTTPリクエストメソッドを取得します。

[詳 細]

[備 考]

戻り値:
リクエストメソッド

setRequestMethod

public void setRequestMethod(String requestMethod)

[概 要]

HTTPリクエストメソッドを設定します。

[詳 細]

[備 考]

パラメータ:
requestMethod - リクエストメソッド

getUrlParameters

public Map<String,String> getUrlParameters()

[概 要]

「key=value」形式URLパラメータマップを取得します。

[詳 細]

[備 考]

戻り値:
URLパラメータマップ

setUrlParameters

public void setUrlParameters(Map<String,String> urlParameters)

[概 要]

「key=value」形式URLパラメータマップを設定します。

[詳 細]

[備 考]

パラメータ:
urlParameters - URLパラメータマップ

addUrlParameters

public void addUrlParameters(String key,
                             String value)

[概 要]

「key=value」形式URLパラメータマップに要素を追加します。

[詳 細]

[備 考]

パラメータ:
key - パラメータキー
value - パラメータ値

removeUrlParameters

public void removeUrlParameters(String key)

[概 要]

「key=value」形式URLパラメータマップから要素を削除します。

[詳 細]

[備 考]

パラメータ:
key - パラメータキー

isRenderResponse

public boolean isRenderResponse()

[概 要]

HTTPレスポンスをUIにレンダリングするかどうかのフラグを取得します。

[詳 細]

[備 考]

戻り値:
レンダリングする場合はtrue、それ以外はfalse

setRenderResponse

public void setRenderResponse(boolean renderResponse)

[概 要]

HTTPレスポンスをUIにレンダリングするかどうかのフラグを設定します。

[詳 細]

[備 考]

パラメータ:
renderResponse - レンダリングする場合はtrue、それ以外はfalse

isAsync

public boolean isAsync()

[概 要]

非同期リクエスト送信フラグ取得

[詳 細]

サーバへの通信を非同期で実行するフラグを取得します。

[備 考]

戻り値:
非同期実行ならtrue、それ以外はfalse

setAsync

public void setAsync(boolean async)

[概 要]

非同期リクエスト送信フラグ設定

[詳 細]

[備 考]

パラメータ:
async - 非同期実行ならtrue、それ以外はfalse

isDynamicUrl

public boolean isDynamicUrl()

[概 要]

動的URLフラグ取得

[詳 細]

URLを動的に生成してサーバへ送信を行うフラグを取得します。

[備 考]

本フラグがtrueの場合、あらかじめサーバ側のweb.xmlでDynamicUrlFilterが 定義されている必要があります。

戻り値:
動的URLを生成する場合はtrue、それ以外はfalse

setDynamicUrl

public void setDynamicUrl(boolean dynamicUrl)

[概 要]

動的URLフラグ設定

[詳 細]

URLを動的に生成してサーバへ送信を行うフラグを設定します。

[備 考]

本フラグがtrueの場合、あらかじめサーバ側のweb.xmlでDynamicUrlFilterが 定義されている必要があります。

パラメータ:
dynamicUrl - 動的URLを生成する場合はtrue、それ以外はfalse

mainproc

protected void mainproc()
                 throws Exception
クラス XalReturnPossibilityModel の記述:

[概 要]

主処理です。

[詳 細]

アクションから譲渡された、イベント発生元ウィンドウレベルエレメントを、 フィールドに保存します。

[備 考]

保存されたイベント発生元ウィンドウレベルエレメントのid属性値が、 新たに取得したウィンドウレベルエレメントのparentId属性値として設定されます。

オーバーライド:
クラス XalReturnPossibilityModel 内の mainproc
例外:
Exception - オーバーライド先で発生する可能性が有る例外

syncRequest

protected void syncRequest(HttpRequest httpRequest,
                           RequestService requestService)
                    throws Exception

[概 要]

同期HTTPリクエストを送信します。

[詳 細]

isRenderingResponse()の返却値を判定して、以下の処理を行います。 【trueの場合】 response = requestService.retrieveAndProcess(httpRequest); 【falseの場合】 response = requestService.retrieve(httpRequest); trueの場合はレスポンス返却時点で画面に反映されます。 この場合、HTTPレスポンスのコンテントはXALデータである必要が有ります。 isRenderingResponse()の結果如何に関わらず、受信したデータはrequestCompleted メソッドに譲渡されます。

[備 考]

isRenderingResponse() == true時、レスポンスがXALデータで無かった場合は 例外が発生します。 シリアライズオブジェクトをレスポンスデータとして受信する場合は setRenderingResponse(false)を設定しておく必要があります。

パラメータ:
httpRequest - HTTPリクエスト
requestService - リクエストサービス
例外:
Exception - リクエスト送信例外

asyncRequest

protected void asyncRequest(HttpRequest httpRequest,
                            RequestService requestService)
                     throws Exception

[概 要]

非同期HTTPリクエストを送信します。

[詳 細]

isRenderingResponse()の返却値を判定して、以下の処理を行います。 【trueの場合】 requestService.retrieveAndProcessAsynchronously(httpRequest,this); 【falseの場合】 requestService.retrieveAsynchronously(httpRequest, this); trueの場合はレスポンス返却時点で画面に反映されます。 この場合、HTTPレスポンスのコンテントはXALデータである必要が有ります。 レスポンス受信成功はthis.requestCompletedが、失敗時はthis.requestFailed が、NetServiceListenerによってコールバックされます。

[備 考]

isRenderingResponse() == true時、レスポンスがXALデータで無かった場合は 例外が発生します。 シリアライズオブジェクトをレスポンスデータとして受信する場合は setRenderingResponse(false)を設定しておく必要があります。

パラメータ:
httpRequest - HTTPリクエスト
requestService - リクエストサービス
例外:
Exception - リクエスト送信例外

requestCompleted

public final void requestCompleted(String uri,
                                   HttpResponse response)

[概 要]

リクエスト完了処理

[詳 細]

リクエストが完了しレスポンスを受信した際の処理を行います。

[備 考]

定義:
インタフェース NetServiceListener 内の requestCompleted

requestFailed

public final void requestFailed(String uri,
                                NetServiceException e)

[概 要]

リクエスト失敗処理

[詳 細]

リクエスト送信が失敗した場合の処理を行います。

[備 考]

定義:
インタフェース NetServiceListener 内の requestFailed

postRequest

public void postRequest(String uri,
                        HttpResponse response)

[概 要]

リクエスト送信後処理

[詳 細]

リクエスト送信後の処理を行います。

[備 考]

本メソッドは、本クラスを継承するモデルが送信後に何かしらの処理を 行いたい場合のみ実装されます。

パラメータ:
uri - リクエストURI
response - HTTPレスポンス

postRequestFailed

public void postRequestFailed(String uri,
                              NetServiceException e)

[概 要]

リクエスト送信失敗後処理

[詳 細]

リクエスト送信失敗の後処理を行います。

[備 考]

本メソッドは、本クラスを継承するモデルが送信失敗後に何かしらの処理を 行いたい場合のみ実装されます。

パラメータ:
uri - リクエストURI
e - リクエスト送信例外


Copyright(C) Fujitsu All Rights Reserved.