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

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

little bottle
little bottle転載
2019-04-29 11:55:374018ブラウズ

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 までご連絡ください。