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 サイトの他の関連記事を参照してください。