サーブレット⇔JSPの処理受け渡し

○Forward (フォワード:1方向のやり取り)
requestを受けたサーブレット/JSPから他のサーブレット/JSPに処理を移し
(サーブレット⇒JSP(このforwardが主流)、JSP⇒サーブレットも可能)
遷移先のサーブレット/JSPからresponseを返すことができる機能 

 request.getRequestDispatcher("URL").forward(request, response);

と記述することで指定URLへ処理を移すことができる。
この記述だとrequest,responseは丸投げになる。言い換えると、処理遷移先までの通信がrequest通信、遷移先からユーザへ返すのがresponse通信。

○Include(インクルード:双方向のやり取り)
requestを受けresponseを返すservlet/JSPと処理専用のservlet/JSP(複数でも可)が存在しその双方向で遷移してやり取りをする。
requestを受けincludeしてる側のservlet/JSPでresponseを返すのが特徴。

request.getRequestDispatcher("URL").include(request, response);

と記述することで指定URLへ処理を移すことができる。
JSPのincludeディレクティブと違う点として、includeディレクティブは対象の実行結果をincludeするのに対し、Dispatcherのincludeは対象の記述内容をほぼそのままincludeする。

Redirect(リダイレクト:接続先の変更)
forwardとincludeとは毛並みが違い、ただ指定リンク先へ飛ばすだけ

response.sendRedirect("URL");

と記述することでリダイレクトされる。
このときの注意点としてURLには「http」から始まる絶対URLを指定した方が間違いが少ない。(相対URLの取り扱い方がforward/includeと異なるため)