リダイレクトと転送には重要な違いがあります。転送を使用する場合、JSP コンテナは内部メソッドを使用してターゲット ページを呼び出し、新しいページは引き続き同じリクエストを処理し、ブラウザはこのプロセスを認識しません。 対照的に、リダイレクト方式は、最初のページがブラウザーに新しいページ要求を送信するように通知することを意味します。リダイレクトを使用するとブラウザに表示される URL が新しいページの URL になりますが、転送を使用すると URL は変更されないからです。リダイレクトは、ブラウザが新しいリクエストを作成する必要があるため、転送よりも遅くなります。同時に、リダイレクト メソッドは新しいリクエストを生成するため、リダイレクト後はリクエスト内のオブジェクトは使用できなくなります。
リダイレクトするか転送するかを選択するにはどうすればよいですか?通常、転送の方が高速で、オブジェクトをリクエスト内に保持できるため、これが最初の選択肢になります。ただし、転送後もブラウザ内の URL は開始ページを指しているため、現在のページがリロードされると、開始ページが再度呼び出されます。このような事態を望まない場合は、転送を選択してください。
転送とリダイレクトの違い
変数を次のページに渡すためだけにセッション スコープを使用しないでください。これにより、転送がこの問題の解決に役立つ可能性があります。
リダイレクト: 前のリクエストに保存されているすべての変数は無効であり、新しいリクエスト スコープに入ります。
転送: 2 つのページを結合する場合と同様、前のリクエストに保存された変数は無効になりません。