―Servlet/JSPリファレンス―
@ITハイブックス編
2003/10/24
|
ワンポイント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