<jsp:forward>

<jsp:forward> は他のページへ転送するJSPアクションタグである。

使い方

<jsp:forward page="/forward.jsp" />

転送する際、パラメータは転送先のページへと引き継がれる。

<jsp:param> タグを使って、さらにパラメータを追加することもできる。

<jsp:forward page="/forward.jsp">
  <jsp:param name="user" value="tsuka" />
</jsp:forward>

属性

<jsp:forward> タグには次の属性を指定する。

page
転送先のページを絶対パスまたは相対パスで指定する。

使用例

JSPアクションタグ <jsp:forward> の使用例を次に示す。

<%@ page contentType="text/html;charset=UTF-8" %>
<jsp:forward page="/forward.jsp" />
<!DOCTYPE html>
<html>
  <head>
    <title>Forward example</title>
  </head>
  <body>
  </body>
</html>

<jsp:param> タグを使って、さらにパラメータを追加することもできる。

<%@ page contentType="text/html;charset=UTF-8" %>
<jsp:forward page="/forward.jsp">
  <jsp:param name="user" value="tsuka" />
</jsp:forward>
<!DOCTYPE html>
<html>
  <head>
    <title>Forward example</title>
  </head>
  <body>
  </body>
</html>

フォワードとリダイレクトの違い

<jsp:forward> と似たJSTLタグに <c:redirect> がある。

フォワードの場合、転送先は同一サーバに限られ、転送先の応答を返す。リクエストパラメータを引き継ぐことができる。

フォワードとリダイレクトには次のような違いがある。

フォワードとリダイレクトの違い
フォワード リダイレクト
動作 フォワード先の応答を返す リダイレクト先へ再度要求するようクライアントに返す
転送先 同一サーバのみ 外部サーバでも可能
リクエストパラメータ 引き継げる 引き継げない

フォワードの場合、クライアントとサーバーの間で次のやり取りを行う。

  1. クライアントがサーバーへ要求を送信する。
  2. サーバーが転送先ページの応答を返す。
フォワード
Figure 1. フォワード

リダイレクトの場合、クライアントとサーバーの間で次のやり取りを行う。

  1. クライアントがサーバーへ要求を送信する。
    GET /unix/command/date.html HTTP/1.1
    Host: segakuin.com
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate
    Accept-Language: ja,en-US;q=0.9,en;q=0.8
  2. サーバーがHTTPステータス302を返す。
    HTTP/1.1 302 Found
    Date: Sun, 23 May 2021 00:38:37 GMT
    Server: Apache/1.3.31 (Unix)
    Location: https://segakuin.com/linux/command/date.html
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=iso-8859-1
  3. クライアントが転送先(HTTP応答ヘッダのLocation)へ再度要求を送信する。
  4. 転送先のページが応答を返す。
リダイレクト
Figure 2. リダイレクト

JSPアクションタグ

JSPのアクションタグには、他にも次のタグがある。