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