AppleApple StoreiPod+iTunes.MacQuickTimeサポートMac OS X
ホットニュースMacをはじめようハードウェアソフトウェアMade4Mac教育Pro医療デベロッパ製品の購入

ページ 1 | 2

レスポンスの生成方法

1. はじめに
2. HTTPリクエストとレスポンス
3. WOResponse
4. HTTPレスポンス生成
5. PDF生成ソリューションの紹介

1. はじめに
Webアプリケーションでは一般的にHTMLを動的に生成しますが、WebObjectsではXML/SVG/PDFなどの様々なデータフォーマットを組み込んで扱うこともできます。ここではHTML以外のデータを扱うレスポンスの生成方法を解説します。

2. HTTPリクエストとレスポンス
使用するデータフォーマットが異なったとしても、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:トランザクションコンテキスト

3. WOResponse
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による開発と運用についての技術情報