クライアントへの出力(HttpServletResponse)


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

HttpServletResponseインターフェース

こちらを参照

コンテンツタイプの設定(setContentType)

種類 拡張子 Content-Type
HTMLファイル html, htm text/html
テキストファイル txt text/plain
GIF gif image/gif
PNG png image/png
Windows 実行ファイル exe application/octet-stream
response.setContentType("text/html");
※文字コードを指定する場合
response.setContentType("text/html;charset=Shift_JIS");
文字コードを設定しなかった場合には次のページで説明する通りデータ本文が「ISO-8859-1(Latin1)」でエンコードされます。その為、日本語を扱うデータの場合は文字化けしてしまいますので注意して下さい。

  • 文字セットの指定(setCharacterEncodingメソッド)
response.setContentType("text/html");
response.setCharacterEncoding("Shift_JIS");

上記は、「response.setContentType("text/html;charset=Shift_JIS");」と同じ
URL(文字セット無し) http://localhost:8080/sample/ResponseSample1
  (文字セットあり) http://localhost:8080/sample/ResponseSample2
アプリケーション配置場所 c:\servlet-sample\sample\
web.xmlファイル c:\servlet-sample\sample\WEB-INF\web.xml
コンテキストファイル C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml

文字出力用のストリームの取得(getWriter)

出力ストリームを取得するには「HttpServletResponse」インターフェースの親インターフェースである「ServletResponse」インタフェースで定義されている「getWriter」メソッドを使用する。
response.setContentType("text/html");
PrintWriter out = response.getWriter();
「PrintWriter」クラスのオブジェクトは、文字を出力する時にコンテンツタイプに設定されている文字セットを使ってエンコーディングします。そのため「getWriter」メソッドを実行する前に「setContentType」メソッド又は「setCharacterEncoding」メソッドで文字コードを設定しておく必要がある。

PrintWriterクラス

メソッド 説明
void println(boolean x) boolean 値を出力して、行を終了します。
void println(char x) 文字を出力して、行を終了します。
void println(char[] x) 文字の配列を出力して、行を終了します。
void println(double x) 倍精度の浮動小数点数を出力して、行を改行します。
void println(float x) 浮動小数点数を出力して、行を改行します。
void println(int x) 整数を出力して、行を終了します。
void println(long x) long 整数を出力して、行を終了します。
void println(Object x) Object を出力して、行を終了します。
void println(String x) String を出力して、行を終了します。
void println() 改行文字列を書き込むことによって、現在の行を改行します。
void close() ストリームを閉じます。
void flush() ストリームをフラッシュします。
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();

out.println("<html>");
out.println("<head>");
 :
out.println("</html>");

out.close();

ステータスコードの設定(setStatus)

ステータスコードを設定するには「HttpServletResponse」インターフェースで定義されている「setStatus」メソッドを使います。
コード 定数
200 SC_OK
204 SC_NO_CONTENT
301 SC_MOVED_PERMANENTLY
302 SC_MOVED_TEMPORARILY
403 SC_FORBIDDEN
404 SC_NOT_FOUND
500 SC_INTERNAL_SERVER_ERROR
503 SC_SERVICE_UNAVAILABLE
ステータスコードは他にも数多く用意されています。200番台は「成功」、300番台は「転送」、400番台は「クライアント側のエラー」、500番台は「サーバ側のエラー」を表します。「setStatus」メソッドは200番台又は300番台のステータスコードを設定する時に利用します。

「setStatus」メソッドを使ってスタータスコードの設定を行った場合、画面に表示する内容は別途作成する必要があります。

エラー系のスタータスコードの設定

エラー系の400番台及び500番台のステータスコードを設定する場合には「HttpServletResponse」インターフェースで定義されている「sendError」メソッドを使います。
「sendError」メソッドを使う場合にはスタータスコードの設定を行うと同時に画面に表示される内容を自動で作成します。その為、一般的なエラー表示が画面に行われます。
もし独自のメッセージを画面に表示したい場合には引数の異なる「sendError」メッセージが用意されています。

こちらを参照
URL http://localhost:8080/sample/formsample5.html
アプリケーション配置場所 c:\servlet-sample\sample\
web.xmlファイル c:\servlet-sample\sample\WEB-INF\web.xml
コンテキストファイル C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml

ヘッダーの設定(setHeader)

ヘッダーを設定するには「HttpServletResponse」インターフェースで定義されている「setHeader」メソッドを使用する。
こちらを参照
URL http://localhost:8080/sample/ResponseSample4
アプリケーション配置場所 c:\servlet-sample\sample\
web.xmlファイル c:\servlet-sample\sample\WEB-INF\web.xml
コンテキストファイル C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml

リダイレクトの設定(sendRedirect)

ステータスコードとLocationヘッダーの設定によってURLを転送させる事が出来ますが、リダイレクト用のメソッドが別途用意されているのでそれを利用することでも他のページへ転送させる事が出来ます。
リダイレクトを設定するには「HttpServletResponse」インターフェースで定義されている「sendRedirect」メソッドを使用する。
URL http://localhost:8080/sample/formsample6.html
http://localhost:8080/sample/ResponseSample5
アプリケーション配置場所 c:\servlet-sample\sample\
web.xmlファイル c:\servlet-sample\sample\WEB-INF\web.xml
コンテキストファイル C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml