リクエスト転送とURLの指向性の違い

1602 ワード

WEBコンポーネントの間には3つのジャンプ方式がある:転送を要求する;URLリダイレクト;リクエストに含まれます.
リクエスト転送
サーブレット1からサーブレット2への転送を要求します.サーブレット1は一部の機能を完了し、さらにSservlet 2にジャンプし、残りの機能を完了し続ける.request.getRequestDispatcher(String path).forward(request,response) ;
特徴:
1.            。 
2.           。
3.               。
4.                。
5.          ,             。
6.        WEB-INF      。

URLリダイレクトresponse.sendRedirect(String url);
特徴:
1.          。   
2.URL           。
3.  URL           ,            。
4.               。
5.URL        ,            。
6.URL       WEB-INF      。

要求の内容
1つのページに他のページの内容を含めることができます.サーブレットでは意味がありませんが、JSPでは意味があります.request.getRequestDispatcher(String path).inclode(request,response);
選択方法:リクエストのデータを共有する必要がある場合は、リクエスト転送を使用します.WEB-INFのリソース使用要求転送にアクセスする必要がある場合.ドメイン間アクセスが必要な場合は、フォームの重複コミットを回避し、URLリダイレクトを使用します.
例:
要求転送はサービス側の行為である:ユーザーがHTTP要求を送信>>サーバが要求を受信>>内部メソッドを呼び出して役割ドメイン(プロジェクト)で要求処理と転送を完了>>リソースをクライアントに対応させる.サーバが転送するアドレスはドメイン(プロジェクト)の中のパスのみであり,他のドメイン(プロジェクト)のパスにジャンプすることはできず,転送後のURLアドレスバーは変わらず,ブラウザ開発者モードで対応するリクエスト転送のアドレスしか表示できず,クライアントは1回のサービス側のみを要求した.
リダイレクトはクライアント動作である:ユーザがHTTP要求を送信>>サーバが302ステータスコード対応とリダイレクトを送信するアドレスを受信>>クライアントがステータスコードと指向性URLアドレスを受信>>クライアントが新しいHTTP要求を再送信する(要求の経路はサービス側がクライアントに対応するURL経路である)>>サービス側は、クライアントから再要求されたデータを受信し、クライアントにデータを渡す.ブラウザのURLアドレスバーは編成され、2回のリクエストでデータを共有できません.
301302はいずれもHTTP状態の符号化であり、いずれもこのURLを持って変化している.301は永久ジャンプを表し、302は一時ジャンプを表す.一時的な翻訳でない場合は、301永続的なジャンプを推奨します.301永続的なジャンプは、検索エンジンに最適化されます.