|
|
ページ 1 | 2 |
|
|
1. はじめに 2. HTTPリクエストとレスポンス 3. WOResponse 4. HTTPレスポンス生成 5. PDF生成ソリューションの紹介 Webアプリケーションでは一般的にHTMLを動的に生成しますが、WebObjectsではXML/SVG/PDFなどの様々なデータフォーマットを組み込んで扱うこともできます。ここではHTML以外のデータを扱うレスポンスの生成方法を解説します。 使用するデータフォーマットが異なったとしても、HTTPを用いて処理をおこなうということは共通しています。HTTPはWebサーバへデータをアクセスするために使用されるプロトコルであり、クライアントからの要求はHTTPリクエスト、サーバからの応答はHTTPレスポンスとして処理されます。 HTTPリクエストおよびHTTPレスポンスには、それぞれデータの情報を含んだHTTPヘッダーが存在します。WebObjectsではこれらを透過的に処理しますが、データにアクセスするAPIが提供されているため、必要に応じてデータをカスタマイズすることができます。 レスポンスの生成はappendToResponse()によって実行され、このAPIはWOApplication, WOSession, WOComponentでそれぞれ実装されています。このメソッドをオーバーライドすることによってHTTPヘッダーを書き換えたり、任意のデータをレスポンスに組み込むことができます。 public void appendToResponse(WOResponse aResponse, WOContext aContext) パラメータ aResponse:アプリケーションが生成するHTTPレスポンス aContext:トランザクションコンテキスト WebObjectsでは通常、WOComponentを用いて定義したテンプレートに基づいてHTTPレスポンスの生成がおこなわれます。このときHTTPレスポンスはWOResponseクラスのインスタンスとして処理されます。WebObjectsフレームワークはHTTPレスポンスとしてHTMLを動的に生成しますが、WOResponseのAPIを用いてHTML以外のデータを組み込んだり、HTTPヘッダーを操作することができます。 またHTTPリクエストはWORequestクラスによって処理されますが、WORequestおよびWOResponseはWOMessageクラスから継承されています。このWOMessageでは以下のようなAPIが提供されており、これらのAPIを用いてレスポンスの生成をカスタマイズすることができます。 public void setContent(String someContent) Stringデータ(someContent)をHTTPレスポンスに埋め込みます。 public org.w3c.dom.Document contentAsDOMDocument() DOMドキュメントとしてデータを取り出します。 public NSArray headerKeys() HTTPヘッダーの全てのフィールド名を取り出します。 public NSDictionary headers() HTTPヘッダーをNSDictionaryとして取り出します。 public NSArray headerForKey(Object aKey) フィールド名(aKey)に対応する値をHTTPヘッダーから取り出します。 public void setHeader(String aString, String aKey) フィールド名(aKey)を指定してHTTPヘッダーに値(aString)を埋め込みます。 |
|
|
ページ 1 | 2 |
|
|
ホーム > ソフトウェア > WebObjects > リソース > WebObjectsによる開発と運用についての技術情報 |