Perbedaan antara ke depan dan pengalihan

Perbedaan antara ke depan dan pengalihan

Ada beberapa layar dan servlet yang bersama -sama membentuk aplikasi web berbasis java. JSP melewati kontrol dari satu servlet ke servlet lain atau JSP menggunakan dua metode - maju dan mengarahkan ulang. Metode maju meneruskan permintaan dari satu servlet ke sumber daya lain dalam aplikasi web dan sumber daya ini dapat berupa file servlet, jsp, atau file html lain.

Metode pengalihan, di sisi lain, mengarahkan kembali permintaan ke aplikasi yang berbeda. Anda tidak dapat melakukan ini dengan metode maju. Jika pengalihan menyentuh sumber daya yang berbeda dalam aplikasi yang sama, maka ia menggunakan URL yang berbeda dari URL permintaan asli. Jika Anda tidak ingin menanggapi permintaan, Anda dapat mengarahkan kembali permintaan ke URL yang berbeda dan browser kemudian mengirimkan permintaan baru ke URL yang disediakan oleh Anda. Posting ini menyoroti beberapa perbedaan yang menjelaskan dua metode secara rinci.

Apa yang maju?

Dalam sistem atau aplikasi berbasis web, seringkali ada kebutuhan untuk mentransfer kontrol antara sumber daya atau JSP yang berbeda. Misalnya, jika Anda ingin melakukan pemesanan dari situs e-commerce, Anda harus mendaftar terlebih dahulu sebelum melanjutkan. Jika Anda belum terdaftar dengan sistem mereka, keranjang belanja mungkin perlu mentransfer kontrol ke formulir JSP yang bertanggung jawab untuk proses pendaftaran. Tindakan maju digunakan secara khusus untuk tujuan ini. Itu digunakan untuk meneruskan permintaan dari satu JSP ke sumber daya lain atau lainnya dalam konteks yang sama.

Apa itu pengalihan?

Metode ini juga digunakan untuk meneruskan permintaan HTTP tetapi tidak seperti penyerang, ini adalah proses dua langkah di mana pengalihan terjadi di sisi klien ke aplikasi yang berbeda sama sekali. Metode pengalihan mengalihkan pengguna ke URL baru. Browser klien secara otomatis membuat permintaan baru pada URL yang ditentukan dalam header pengalihan yang berasal dari server. Ini membutuhkan komunikasi pulang-pergi dengan klien, sehingga relatif lebih lambat dari yang maju.

Perbedaan antara ke depan dan pengalihan

Deskripsi Maju VS. Redirect

Metode Forward () digunakan untuk meneruskan permintaan dari satu JSP ke yang lain atau dari satu JSP ke servlet, atau dari satu JSP ke sumber daya lain dalam aplikasi web. Kontrol dilewatkan secara internal oleh wadah dan browser/klien tidak terlibat dalam proses. Metode Maju dinyatakan dalam RequestDispatcher. Metode sendredirect () dinyatakan dalam httpservletResponse dan digunakan untuk mengarahkan kembali permintaan klien ke URL yang berbeda yang tersedia di server atau konteks yang berbeda. Dengan pengalihan, Anda dapat mengarahkan kembali browser ke aplikasi yang berbeda sama sekali.

Keterlibatan Klien dalam VS Maju. Redirect

Salah satu perbedaan utama antara kedua metode tersebut adalah bahwa wadah web menangani semua proses secara internal jika terjadi ke depan () dan URL tidak berubah di browser klien, sehingga klien/browser tidak terlibat membiarkan mereka sama sekali tidak menyadari bahwa Tindakan telah terjadi. Dalam hal sendRedirect (), metode ini menetapkan header dan konten tubuh yang sesuai untuk mengarahkan kembali permintaan ke URL yang berbeda dan browser menangani pengiriman permintaan baru ke URL yang terlihat oleh klien karena URL berubah di browser.

Kontrol eksekusi

Ketika metode Forward () dieksekusi pada waktu permintaan, permintaan saat ini diteruskan ke halaman JSP lain dan pemrosesan JSP saat ini diakhiri. Permintaan dapat diteruskan ke servlet yang ditulis dalam bahasa pemrograman Java, atau ke halaman HTML statis. Permintaan sendredirect () hanya memberitahu browser untuk pergi ke URL yang berbeda, mengirimkan kontrol eksekusi di luar aplikasi web. Ini menggunakan proses dua langkah untuk menginstruksikan URL browser untuk membuat permintaan lain yang mentransfer kontrol ke klien.

Kecepatan

A Forward () beroperasi di dalam server dan mengeksekusi lebih cepat dari sendRedirect (). Redirect harus melalui browser dan kemudian menunggu browser membuat permintaan HTTP baru. Redirect membuat server mengirim kode status respons HTTP 302 dengan header lokasi yang berisi URL baru ke browser, dan setelah browser menerima kode status 302, itu membuat permintaan baru ke URL yang ditemukan di header lokasi di lokasi. Ini membutuhkan komunikasi pulang-pergi dengan klien yang membuatnya relatif lebih lambat dari yang maju ().

Maju vs. Redirect: Bagan Perbandingan

Ringkasan Forward VS. Redirect

Mempelajari perbedaan antara metode maju dan pengalihan adalah salah satu bagian terpenting bagi pengembang Java. Sementara pengontrol dapat melakukan metode maju atau pengalihan di akhir pemrosesan permintaan, mereka memiliki seperangkat penggunaan sendiri. Sebagian besar waktu, Anda akan menggunakan metode maju () karena sedikit lebih cepat dari sendRedirect (), yang pada kenyataannya, membutuhkan komunikasi pulang-pergi dengan klien membuatnya lebih lambat dari yang maju. Nah, dengan pengalihan, Anda dapat mengarahkan browser ke aplikasi yang berbeda. Ini tidak bisa dilakukan dengan penyerang. Singkatnya, penyerang bekerja paling baik ketika satu komponen harus melakukan logika bisnis dan berbagi hasil dengan komponen lain, sementara pengalihan bekerja paling baik ketika klien harus diarahkan dari satu halaman ke halaman lain.