【JSP】別のページに転送する方法。

Javaのページ転送には

  • redirect
  • forward

の二種類がありますが。


後者のほうが、

  1. 負荷が軽い。
  2. リクエストパラメータを引き渡せる。

という利点があります。


「ログインに失敗した際(IDとパスワードが空の場合)に、ログイン画面(login.jsp)に戻す」
という処理を作る際、以下のように転送を実装しました。

//フォーム送信値の文字コード指定
request.setCharacterEncoding("Shift-JIS");


//フォーム送信データの受け取り
String loginId = request.getParameter("loginId");
String loginPw = request.getParameter("loginPw");


if(loginId == null || loginId == "" || loginPw == null || loginPw == ""){
  request.setAttribute("flgLogin", "return");
  RequestDispatcher rd = request.getRequestDispatcher("./login.jsp");
  rd.forward(request, response);
}


そして、ログイン画面(login.jsp)側で"flgLogin"を受け取ります。

String flgLogin = (String)request.getAttribute("flgLogin");

あとはこれを使ってエラーメッセージの分岐処理を作ってもいいし、活用できますよね。