―Servlet/JSPリファレンス―

@ITハイブックス編
2003/10/24
Javaプログラミング
ワンポイントレクチャーについて

   コンテンツタイプの設定

   ワンポイントQuestion

 以下のようなコードがあります。

public void doPost(HttpServletRequest req, HttpServletResponse resp) {
(1) String name = req.getParameter("name");
(2) PrintWriter out = resp.getWriter();
(3) out.println("<HTML>");
(4) out.println("こんにちは!");
(5) out.println("</HTML>");
}

 resp.setContentType("text/html;charset=Shift_JIS"); を挿入する場合、ふさわしくない場所は次のうちどれですか?(複数選択)

A (1)
B (2)
C (3)
D (4)
E (5)

   解説

 HTTPレスポンスコンテンツタイプを、HttpServletResponseの以下のメソッドを使用して獲得することができます。

void setContentType(String type)
クライアントへ送信するレスポンスのコンテンツ形式を設定します。コンテンツ形式には、“text/html; charset=Shift_JIS”のMIME形式で、使用される文字エンコーディングのタイプを含めることができます。

 本問題のコードは、次のようになっています。

String name = req.getParameter("name");
PrintWriter out = resp.getWriter();
out.println("<HTML>");
out.println("こんにちは!");
out.println("</HTML>");

 setContentType()は、getWriter()する前に呼び出す必要があります。getWriter()以降にsetContentType()を呼び出しても無効になってしまうので、このケースでは文字化けしてしまいます。

POINT
PrintWriterを取得する場合は、setContentType()をあらかじめ呼び出しておく必要があります。

KEYWORD
MIME
インターネット上で扱うテキストデータに関する規格を拡張し、画像ファイルなどのバイナリデータも扱えるようにした規格です。

   ワンポイントQuestionの解答

正解 C、D、E

Java2ラーニングブック −Web Component Developer編−

本記事は@ITハイブックスシリーズ「J2EEラーニングブック −Web Component Developer編−」(技術評論社)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。

 

Javaプログラミング・ワンポイントレクチャー INDEX





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間