JAVA:IT TRICK

JSPとのデータ受渡し

サーブレットとJSP間のデータ受渡方法について説明します。
  • このエントリーをはてなブックマークに追加
  • Clip to Evernote
  • IT TRICK RSS

サーブレットとJSP間のデータ受渡方法について説明します。

サーブレットとJSP間でリクエストスコープを使ってデータの受渡を行う場合は、HttpServletRequestクラスのsetAttribute()メソッドを使ってリクエストスコープにデータのキーとデータの値を設定し、これを受け取るJSPでHttpServletRequestクラスのgetAttribute()メソッドを使って同じキーを指定して取得します。以下は実際のサンプルです。

サーブレット・JSP間データ受渡サンプル

このサンプルではSample48148.javaでリクエストを受け取り、リクエストスコープに「キー:message」、「値:hello」を設定し、48148.jspにフォワードしています。

Sample48148.java
import java.io.IOException;

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


public class Sample48148 extends HttpServlet {

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

		request.setAttribute("message", "hello");

		RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/48148.jsp");
		dispatcher.forward(request, response);

	}
}

48148.jspではHttpServletRequestクラスのgetAttribute()メソッドで「キー:message」を指定してデータを取り出し出力しています。

48148.jsp
<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>
<html>
<body>
	<%=request.getAttribute("message") %>
</body>
</html>

このサンプルのためのweb.xml定義です。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>

	<servlet>
		<servlet-name>48148</servlet-name>
		<servlet-class>Sample48148</servlet-class>
	</servlet>

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

</web-app>

このサンプルを実行するとブラウザで「hello」と表示されるはずです。