2007 年 2 月 25 日 23 時 55 分

Request と Response


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


今日は、Request と Response について調べる。

Web アプリケーションはリクエストを受け取ると、
ServletRequest と ServletResponse を生成する。

ServletRequest と ServletResponse は汎用的なもので、
Web ベースの場合は、このインタフェースを拡張した、
以下のインタフェースとなる。

・javax.servlet.http.HttpServletRequest
・javax.servlet.http.HttpServletResponse

HttpServletRequest は HTTP 要求を抽象化したもので、
HttpServletResponse は HTTP 応答を抽象化したものである。
まあ、これは名前を見れば明らかだ。

HttpServletRequest は URI やヘッダの解析はもちろん、
HTML フォームが送信された際に受け取る、
x-www-form-urlencoded 符号化を理解する。

そのため、getHeader や getParameter などのメソッドに、
ヘッダやフォーム要素の名前を引数として呼び出すだけで、
簡単に値を取得することができる。

HttpServletResponse は軽量のラッパクラスだ。
CGI のようにヘッダと本体を一緒に扱うのではなく、
それぞれ明確に分かれたメソッドを呼び出すことで、
送り返すデータを出力することができる。

HttpServletResponse は非常に汎用的になっており、
HTML 等に対する特別な実装は持っていない。
その理由は、Response を使って生成する出力データが、
アプリケーションによってまったく異なるからだ。

Servlet API には余計な処理を行わず、
特化した処理は、Servlet の実装に任されているのである。

さて、HttpServletRequest や HttpServletResponse を
実装したクラスのインスタンスは、
「リクエストごとに」Servlet コンテナが用意する。
そのため、これらオブジェクトの寿命は
HTTP 要求を受け取ってから、HTTP 応答を返すまでである。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.