Ada beberapa layar dan servlet yang bersama-sama membentuk aplikasi web berbasis Java. JSP meneruskan kontrol dari satu servlet ke servlet lain atau JSP menggunakan dua metode - Maju dan Redirect. Metode Teruskan meneruskan permintaan dari satu servlet ke sumber daya lain dalam aplikasi web dan sumber daya ini dapat berupa servlet lain, halaman JSP, atau file HTML.
Metode Redirect, di sisi lain, mengarahkan permintaan ke aplikasi lain. Anda tidak dapat melakukan ini dengan metode penerusan. Jika pengalihan hits sumber daya yang berbeda dalam aplikasi yang sama, maka itu menggunakan URL yang berbeda dari URL permintaan asli. Jika Anda tidak ingin menanggapi permintaan, Anda dapat mengalihkan 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.
Dalam sistem atau aplikasi berbasis web, seringkali ada kebutuhan untuk mentransfer kontrol antara sumber daya yang berbeda atau JSP. 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 ke depan digunakan khusus untuk tujuan ini. Ini digunakan untuk meneruskan permintaan dari satu JSP ke yang lain atau sumber daya lain dalam konteks yang sama.
Metode ini juga digunakan untuk meneruskan permintaan HTTP tetapi tidak seperti penerusan, ini adalah proses dua langkah di mana pengalihan terjadi di sisi klien ke aplikasi yang berbeda secara bersamaan. Metode pengalihan mengarahkan pengguna ke URL baru. Browser klien secara otomatis membuat permintaan baru pada URL yang ditentukan dalam header redirect yang berasal dari server. Ini membutuhkan komunikasi bolak-balik dengan klien, sehingga relatif lebih lambat daripada maju.
Metode forward () digunakan untuk meneruskan permintaan dari satu JSP ke JSP 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 forward dideklarasikan di RequestDispatcher. Metode SendRedirect () dideklarasikan dalam HttPServletResponse dan digunakan untuk mengarahkan permintaan klien ke URL yang berbeda yang tersedia di server atau konteks yang berbeda. Dengan pengalihan, Anda dapat mengarahkan browser ke aplikasi yang berbeda sekaligus.
Salah satu perbedaan utama antara kedua metode adalah bahwa wadah web menangani semua proses secara internal jika forward () dan URL tidak berubah di browser klien, sehingga klien / browser tidak terlibat membuat mereka sama sekali tidak menyadari bahwa tindakan telah terjadi. Dalam kasus SendRedirect (), metode ini mengatur header dan isi tubuh yang sesuai untuk mengarahkan permintaan ke URL yang berbeda dan browser menangani pengiriman permintaan baru ke URL yang terlihat oleh klien ketika URL berubah di browser..
Ketika metode forward () dieksekusi pada waktu permintaan, permintaan saat ini akan diteruskan ke halaman JSP lain dan pemrosesan JSP saat ini dihentikan. 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.
Forward () beroperasi di dalam server dan mengeksekusi lebih cepat daripada SendRedirect (). Pengalihan harus melalui browser dan kemudian menunggu browser untuk membuat permintaan HTTP baru. Pengalihan membuat server mengirim kode status respons HTTP 302 dengan tajuk lokasi yang berisi URL baru ke browser, dan setelah browser menerima kode status 302, itu membuat permintaan baru ke URL yang ditemukan di tajuk lokasi. Ini membutuhkan komunikasi bolak-balik dengan klien yang membuatnya relatif lebih lambat daripada penerusan ().
Mempelajari perbedaan antara metode forward dan redirect adalah salah satu bagian terpenting bagi pengembang Java. Sementara pengontrol dapat melakukan metode maju atau redirect pada akhir pemrosesan permintaan, mereka memiliki seperangkat kegunaan sendiri. Sebagian besar waktu, Anda akan menggunakan metode forward () karena sedikit lebih cepat daripada SendRedirect (), yang pada kenyataannya, membutuhkan komunikasi bolak-balik dengan klien yang membuatnya lebih lambat daripada forward. Nah, dengan pengalihan, Anda bisa mengarahkan browser ke aplikasi yang berbeda. Ini tidak dapat dilakukan dengan maju. Singkatnya, suatu penerusan bekerja paling baik ketika satu komponen harus melakukan logika bisnis dan berbagi hasil dengan komponen lain, sementara pengalihan bekerja paling baik ketika klien harus dialihkan dari satu halaman ke halaman lain.