<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> タグには次の属性を指定する。
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> がある。
フォワードの場合、転送先は同一サーバに限られ、転送先の応答を返す。リクエストパラメータを引き継ぐことができる。
フォワードとリダイレクトには次のような違いがある。
フォワード | リダイレクト | |
---|---|---|
動作 | フォワード先の応答を返す | リダイレクト先へ再度要求するようクライアントに返す |
転送先 | 同一サーバのみ | 外部サーバでも可能 |
リクエストパラメータ | 引き継げる | 引き継げない |
フォワードの場合、クライアントとサーバーの間で次のやり取りを行う。
リダイレクトの場合、クライアントとサーバーの間で次のやり取りを行う。
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
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
JSPのアクションタグには、他にも次のタグがある。