―Servlet/JSPリファレンス―
2003/10/24
サーブレットからの出力 |
ワンポイントQuestion |
クライアントへの出力チャネルを獲得するメソッドは、次のうちどれですか?(複数選択)
|
解説 |
サーブレットからクライアントへ応答を返す場合は、サービスメソッド(doGet、doPostなど)に渡されるHttpServletResponseの以下のメソッドを使用してクライアントへの出力チャネルを獲得します。
PrintWriter getWriter() ServletOutputStream getOutputStream() |
文字テキストを送信する例を具体的に見てみましょう。まず以下の画面をご覧ください。
クライアントへの表示例 |
この画面のHTMLファイルは、以下のようになっています。
<HTML> |
そして、このHTMLファイルを出力したサーブレットは、次のようになっています。
public void doGet(HttpServletRequest
req, HttpServletResponse resp) |
文字テキストをクライアントへ送信するので、まず2行目のgetWriter()でクライアントへの出力チャネルを獲得します。戻り値のPrintWriterオブジェクトがクライアントへの出力チャネルになります。
次に獲得した出力チャネルへprintln()を使用してクライアントに送信したいテキストデータ(つまりクライアントに表示したいHTMLコード)を書き込みます。すると、そのデータがクライアントへ送信されてブラウザに表示され、上記の画面のとおり表示されます。
getOutputStream()を使用してクライアントへバイナリデータで応答を返すケースは、クライアント側はアプレットなどのプログラムモジュールになる場合です。
POINT |
・文字エンコーディングを有効にするためには、getWriter()を呼び出す前にsetContentType()を呼び出す必要があります。 ・文字テキストを送信する場合、明示的にsetContentType()を使用して文字コードを指定しないと文字化けの原因となることがあります。 ・getOutputStream()を使用してバイナリデータをクライアントに送信した場合には、Webコンテナはバイナリデータをエンコードしません。 ・バイナリデータとテキストデータを混在させる場合は、getOutputStream() を使用して、文字データ部分についてはユーザーのプログラム内で管理します。 |
KEYWORD |
■出力チャネル 送信データを伝播するための通信経路です。 |
ワンポイントQuestionの解答 |
正解 D、E
Java2ラーニングブック
−Web Component Developer編−
|
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|