Birlikte Java tabanlı bir web uygulaması oluşturan birden çok ekran ve sunucu uygulaması vardır. JSP, denetimi bir sunucu uygulamasından başka bir sunucu uygulamasına veya JSP'ye iki yöntem kullanarak iletir - İlet ve Yönlendir. Yönlendirme yöntemi, isteği bir sunucu uygulamasından bir web uygulamasındaki başka bir kaynağa iletir ve bu kaynak başka bir sunucu uygulaması, JSP sayfası veya HTML dosyası olabilir.
Yönlendirme yöntemi ise talebi farklı bir uygulamaya yönlendirir. Bunu bir ileri yöntemle yapamazsınız. Bir yönlendirme aynı uygulamada farklı bir kaynağa çarparsa, orijinal istek URL'sinden farklı bir URL kullanıyor demektir. Bir isteğe yanıt vermek istemiyorsanız, isteği farklı bir URL'ye yönlendirebilirsiniz ve tarayıcı yeni isteği sizin sağladığınız URL'ye gönderir. Bu gönderi, iki yöntemi ayrıntılı olarak açıklayan birkaç farklılığı vurgulamaktadır.
Web tabanlı sistemlerde veya uygulamalarda, kontrolü farklı kaynaklar veya JSP'ler arasında aktarmaya ihtiyaç vardır. Örneğin, bir e-ticaret sitesinden sipariş vermek isterseniz, devam etmeden önce kayıt olmanız gerekir. Henüz sistemlerine kayıtlı değilseniz, alışveriş sepetinin kontrolü kayıt işleminden sorumlu olan JSP formuna aktarması gerekebilir. İleri hareket özellikle bu amaç için kullanılır. İsteği bir JSP'den aynı bağlamda başka bir kaynağa veya başka bir kaynağa iletmek için kullanılır.
Bu yöntem HTTP isteklerini iletmek için de kullanılır, ancak bir iletmenin aksine, yönlendirmenin istemci tarafında farklı bir uygulamaya tamamen uygulandığı iki adımlı bir işlemdir. Yönlendirme yöntemi kullanıcıyı yeni bir URL'ye yönlendirir. İstemcinin tarayıcısı, sunucudan gelen yönlendirme üstbilgisinde belirtilen URL'ye ilişkin yeni isteği otomatik olarak yapar. Müşteri ile gidiş-dönüş iletişim gerektirir, bu nedenle ileriye göre nispeten daha yavaştır.
Forward () yöntemi, isteği bir JSP'den diğerine veya bir JSP'den sunucu uygulamasına veya bir JSP'den bir web uygulamasındaki başka bir kaynağa iletmek için kullanılır. Kontrol, kapsayıcı tarafından dahili olarak geçirilir ve tarayıcı / istemci sürece dahil değildir. Forward yöntemi RequestDispatcher içinde bildirilir. SendRedirect () yöntemi HttPServletResponse içinde bildirilmiştir ve istemci isteğini farklı bir sunucuda veya bağlamda kullanılabilen farklı bir URL'ye yönlendirmek için kullanılır. Bir yönlendirme ile tarayıcıyı tamamen farklı bir uygulamaya yönlendirebilirsiniz.
İki yöntem arasındaki en önemli farklardan biri, web kapsayıcısının iletme () durumunda tüm işlemleri dahili olarak işlemesi ve URL'nin istemcinin tarayıcısında değişmemesi, bu nedenle istemci / tarayıcının, eylem zaten gerçekleşti. SendRedirect () durumunda, yöntem, isteği farklı bir URL'ye yönlendirmek için uygun üstbilgileri ve gövde içeriğini ayarlar ve tarayıcı, URL tarayıcıda değiştikçe istemcinin görebileceği URL'ye yeni isteği göndermeye özen gösterir..
Forward () yöntemi istek zamanında yürütüldüğünde, geçerli istek başka bir JSP sayfasına iletilir ve geçerli JSP'nin işlenmesi sonlandırılır. İstek, Java programlama dilinde yazılmış bir sunucu uygulamasına veya statik bir HTML sayfasına iletilebilir. Bir SendRedirect () isteği, tarayıcıya farklı bir URL'ye gitmesini söyleyerek yürütme denetimini web uygulaması dışında gönderir. Tarayıcının URL'sine, kontrolü istemciye aktaran başka bir istekte bulunmasını bildirmek için iki adımlı bir işlem kullanır..
Forward (), sunucu içinde çalışır ve bir SendRedirect () 'den daha hızlı çalışır. Bir yönlendirmenin tarayıcıdan geçmesi ve tarayıcının yeni bir HTTP isteği yapmasını beklemesi gerekir. Yeniden yönlendirme, sunucunun tarayıcıya yeni bir URL içeren bir konum üstbilgisi ile HTTP yanıt durum kodunu 302 göndermesini sağlar ve tarayıcı 302 durum kodunu aldıktan sonra, konum üstbilgisinde bulunan URL'ye yeni bir istekte bulunur. Bu, istemciyle bir gidiş-dönüş iletişimi gerektirir;.
İleri ve yönlendirme yöntemleri arasındaki farkı öğrenmek, Java geliştiricileri için en önemli parçalardan biridir. Bir denetleyici, bir isteği işlemenin sonunda ileri veya yönlendirme yöntemini uygulayabilirken, kendi kullanım kümeleri vardır. Çoğu zaman, bir SendRedirect () yönteminden biraz daha hızlı olduğu için bir forward () yöntemini kullanırsınız, bu aslında istemciyle bir gidiş-dönüş iletişimini bir iletmekten daha yavaş hale getirir. Bir yönlendirme ile tarayıcıyı farklı bir uygulamaya yönlendirebilirsiniz. Bu bir ileri ile yapılamaz. Özetle, ileriye doğru bir bileşen iş mantığı gerçekleştirmek ve sonuçları başka bir bileşenle paylaşmak zorunda kaldığında en iyi sonucu verirken, yönlendirme en iyi şekilde çalışır, istemci bir sayfadan diğerine yönlendirilmesi gerektiğinde.