JAVA:IT TRICK

ヘッダーの設定(setHeader)

サーブレットでレスポンススヘッダに任意の情報を設定する方法について説明します。
  • このエントリーをはてなブックマークに追加
  • Clip to Evernote
  • IT TRICK RSS

サーブレットでレスポンススヘッダに任意の情報を設定する方法について説明します。

レスポンスヘッダに任意な情報を設定するにはHttpServletResponseクラスのsetHeader()メソッドを使います。また、setStatus()メソッドと組み合せることで様々なことができます。以下はsetHeader()メソッドを使ったサンプルです。

setHeader()メソッドのサンプル

このサンプルではHttpServletResponseクラスのsetStatus()メソッドを使って、レスポンスコードを「SC_MOVED_TEMPORARILY」(リダイレクト302)に設定し、setHeader()メソッドを使ってリダイレクト先情報として「Location」を設定しています。

Sample48130.java
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class Sample48130 extends HttpServlet {

	public void doGet(HttpServletRequest request,
			HttpServletResponse response)
	throws IOException, ServletException {

		// レスポンスコード302を設定
		response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
		response.setHeader("Location", "/");

	}
}

上記のサーブレットのためのweb.xml設定です。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
        <servlet>
                <servlet-name>48130</servlet-name>
                <servlet-class>Sample48130</servlet-class>
        </servlet>

        <servlet-mapping>
                <servlet-name>48130</servlet-name>
                <url-pattern>/48130</url-pattern>
        </servlet-mapping>

</web-app>

このサンプルをブラウザで呼び出すと、ブラウザが自動的にドキュメントルートにリダイレクトします。