Det finns flera skärmar och servlets som tillsammans utgör en Java-baserad webbapplikation. En JSP överför kontrollen från en servlet till en annan servlet eller JSP med två metoder - Vidarebefordra och omdirigera. Frammatningsmetoden vidarebefordrar en begäran från en servlet till en annan resurs i en webbapplikation och den här resursen kan vara en annan servlet, JSP-sida eller HTML-fil.
Omdirigeringsmetoden å andra sidan omdirigerar begäran till en annan applikation. Du kan inte göra det med en framåtriktad metod. Om en omdirigering träffar en annan resurs i samma applikation använder den annorlunda URL än den ursprungliga förfrågningsadressen. Om du inte vill svara på en förfrågan kan du omdirigera begäran till en annan webbadress och webbläsaren skickar sedan den nya förfrågan till webbadressen från dig. I det här inlägget framhävs ett par skillnader som förklarar de två metoderna i detalj.
I webbaserade system eller applikationer är det ofta nödvändigt att överföra kontroll mellan olika resurser eller JSPs. Om du till exempel vill beställa en e-handelsplats måste du registrera dig först innan du fortsätter. Om du ännu inte är registrerad hos deras system, kan det hända att kundvagnen överför kontrollen till det JSP-formulär som ansvarar för registreringsprocessen. Framåtgärden används speciellt för detta ändamål. Den används för att vidarebefordra begäran från en JSP till en annan eller en annan resurs inom samma sammanhang.
Den här metoden används också för att vidarebefordra HTTP-förfrågningar, men i motsats till en framåtriktad process är det en tvåstegsprocess där omdirigeringen sker på kundsidan till en annan applikation helt och hållet. Omdirigeringsmetoden omdirigerar användaren till en ny URL. Klientens webbläsare gör automatiskt den nya förfrågan på webbadressen som anges i omdirigeringsrubriken som kommer från servern. Det kräver en rundturskommunikation med kunden, så det är relativt långsammare än en framåtriktad.
Metoden forward () används för att vidarebefordra begäran från en JSP till en annan eller från en JSP till en servlet eller från en JSP till en annan resurs i en webbapplikation. Kontrollen passeras internt av behållaren och webbläsaren / klienten är inte inblandad i processen. Framåtmetoden deklareras i RequestDispatcher. Metoden SendRedirect () deklareras i HttPServletResponse och används för att omdirigera klientförfrågan till en annan webbadress som är tillgänglig på en annan server eller ett kontext. Med en omdirigering kan du omdirigera webbläsaren till en annan applikation helt och hållet.
En av de viktigaste skillnaderna mellan de två metoderna är att webbehållaren hanterar alla processer internt i händelse av vidarebefordran () och URL-adressen ändras inte i klientens webbläsare, så att klienten / webbläsaren inte är involverad lämnar dem helt omedvetna om att åtgärder har redan ägt rum. I fall av SendRedirect () anger metoden lämpliga rubriker och kroppsinnehåll för att omdirigera begäran till en annan webbadress och webbläsaren tar hand om att skicka den nya förfrågan till webbadressen som är synlig för klienten när webbadressen ändras i webbläsaren.
När framåt () -metoden exekveras vid begäran tid, skickas den aktuella begäran vidare till en annan JSP-sida och behandlingen av den aktuella JSP-terminalen avslutas. Förfrågan kan vidarebefordras till en servlet som skrivs i Java-programmeringsspråket, eller till en statisk HTML-sida. En SendRedirect () -förfrågan berättar bara att webbläsaren ska gå till en annan webbadress, och skickar exekveringskontrollen utanför webbapplikationen. Det använder en tvåstegs process för att instruera webbläsarens webbläsare för att göra en annan begäran som överför kontrollen till klienten.
En forward () fungerar inom servern och körs snabbare än en SendRedirect (). En omdirigering måste gå igenom webbläsaren och vänta sedan på att webbläsaren ska göra en ny HTTP-begäran. En omdirigering gör att servern skickar HTTP-svarstatuskoden 302 med en platsrubrik som innehåller en ny webbadress till webbläsaren, och efter att webbläsaren har fått statuskoden 302 gör den en ny begäran till webbadressen som hittades i platsrubriken. Detta kräver en rundturskommunikation med klienten vilket gör det relativt långsammare än en framåtriktad ().
Att lära skillnaden mellan framåtriktad och omdirigering är en av de viktigaste delarna för Java-utvecklare. Medan en kontroller kan utföra antingen en framåtriktad eller en omdirigeringsmetod i slutet av behandlingen av en förfrågan har de egna användningsområden. För det mesta skulle du använda en forward () -metod eftersom den är marginellt snabbare än en SendRedirect (), vilket i själva verket kräver en returresa med kunden som gör det långsammare än en framåtriktad. Tja, med omdirigering kan du styra webbläsaren till en annan applikation. Detta kan inte göras med en framåt. I ett nötskal fungerar en framsida bäst när en komponent måste utföra affärslogik och dela resultat med en annan komponent, medan en omdirigering fungerar bäst när klienten omdirigeras från en sida till en annan.