Java: ServletからJSPへリクエストをフォワード

目的

Servletで処理した結果をJSPファイルに転送し、HTMLを生成する。これによって、MVCモデルにおけるViewの分離ができる。

方法

protected void doGet(HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException {
	ArrayList<string&#91;&#93;> table = new ArrayList<string&#91;&#93;>(); // 転送データ
<中略>
	req.setAttribute("table", table);
	req.getRequestDispatcher("jsp/view.jsp").forward(req, res);

上記のServletコード上のtableという変数をview.jspに渡したす場合、HttpServletRequest #setAttributeで変数を登録し、getRequestDispatcherとforwardでリクエストをフォワードする。
JSP側で登録した変数を取り出すには、下記のコードを用いる。

<% ArrayList<string&#91;&#93;> table = (ArrayList<string&#91;&#93;>)request.getAttribute("table"); %>