目次へ

5.3. forward

「forward」は他のリソース(「HTML」「JSP」「Servlet」)に処理を転送する機能です。includeのように、表示の一部だけを任せるという訳ではありません。そのため、1つ制約があり、forwardを行うまでに何らかの表示を返してはいけません。その場合にはIllegalStateExceptionが発生します。以下のサンプルでは、forwardの直前に出力を行っていますので、例外が発生します。

public final class ForwardServlet extends HttpServlet{
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{
    response.setContentType("text/html; charset=EUC-JP");
    PrintWriter writer=response.getWriter();
    writer.println("<html>");
    //前の行で出力があるので、例外が発生する。
    request.getRequestDispatcher("/resource/Included").forward(request,response);
  }
}

逆にforwardした後、何の出力を行っても、例外は発生しませんが意味はありません。

forwardは処理(Servlet)と表示(JSP)を切り分けてアプリケーションを開発する際に、非常に重要な機能です。

(実習課題2)

3章の実習課題3のプログラムを改良しなさい。

  • Internet Explorerだった場合には、実習課題1(5章)のプログラムに「forward」する。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp