ホームページ > ウェブフロントエンド > htmlチュートリアル > Web開発における転送とリダイレクトの違い

Web開発における転送とリダイレクトの違い

little bottle
リリース: 2019-04-29 11:55:37
転載
4171 人が閲覧しました

Web 開発を行う場合、ジャンプが最も一般的です。今日は 2 種類のジャンプを学びます。興味のある友達は見てください。お役に立てれば幸いです。

最初は request.getRequestDispatcher().forward(request,response):

1 です。これは転送に属し、サーバー ジャンプはメソッド呼び出しに相当します。現在のファイルの実行中に、ターゲット ファイルに切り替わります。2 つのファイル (現在のファイルとターゲット ファイル) は同じリクエストに属します。前ページと次のページはリクエストを共有します。これを使用して、データまたはセッション情報、request.setAttribute() および request.getAttribute() を渡すことができます。

2. 2 回実行した後も、アドレス バーは変化せず、現在のファイルのアドレスのままです。

3. この Web アプリケーションの外部のページや Web サイトにリダイレクトできないため、リダイレクト速度が速い必要があります。

4. URLに含まれる「/」はアプリケーション(プロジェクト)のパスを示します。

2 番目のタイプは、response.sendRedirect():

1 です。これは、リダイレクトとクライアント ジャンプであり、クライアント サーバーにリクエストを送信すると、サーバーはレスポンスを返します レスポンスを受信した後、クライアントはサーバーに別のリクエストを送信します リクエストは合計 2 つあります 表裏ページはリクエストを共有していないため、読み取ることができませんリダイレクト前に request.setAttribute() を通じてプロパティ値を設定します。

2. 2 回実行すると、アドレス バーがターゲット ファイルのアドレスに変わります。

3. この Web アプリケーションの外部のページや Web サイトにリダイレクトできるため、リダイレクト速度は比較的遅くなります。

4. URL に含まれる「/」はルート ディレクトリへのパスを表します。

特別なアプリケーション: データを変更、削除、または追加する場合は、response.sendRedirect() を使用する必要があります。 request.getRequestDispatcher().forward(request,response) を使用した場合、操作前後のアドレス バーは変化せず、変更されたコントローラーのままです。この時点で現在のページが更新されると、再送信されます。データの変更リクエストが行われるため、ページを更新した後にデータを追加する人もいます。

2 番目の方法でデータを転送する方法:

#1. セッションを選択できますが、セッションを選択する必要があります。 2 番目のファイルを削除;

2. リクエストされた URL に「add.htm?id=122」

などのパラメータを含めることができます。リダイレクトを選択しますか、それとも転送しますか?通常、転送の方が高速で、オブジェクトをリクエスト内に保持できるため、これが最初の選択肢になります。ただし、転送後もブラウザ内の URL はスタート ページを指しているため、この時点で現在のページをリロードすると、再度スタート ページが呼び出されます。このような事態を望まない場合は、転送を選択してください。

関連チュートリアル: フロントエンド ビデオ チュートリアル

以上がWeb開発における転送とリダイレクトの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート