Obstaja več zaslonov in servlet, ki skupaj tvorijo spletno aplikacijo, ki temelji na Javi. JSP prenese nadzor iz enega servleta v drugega servleta ali JSP z uporabo dveh metod - Posreduj in preusmeri. Metoda Forward posreduje zahtevo od enega servleta do drugega vira v spletni aplikaciji in ta vir je lahko drug servlet, JSP stran ali datoteka HTML.
Metoda preusmeritve po drugi strani zahtevo preusmeri na drugo aplikacijo. Tega ne morete storiti z načinom posredovanja. Če preusmeritev v isti aplikaciji naleti na drug vir, potem uporablja drugačen URL kot prvotni URL zahteve. Če ne želite odgovoriti na zahtevo, jo lahko preusmerite na drug URL in brskalnik nato novo zahtevo pošlje na URL, ki ste ga dobili. Ta objava izpostavlja nekaj razlik, ki podrobno razlagajo obe metodi.
V sistemih ali aplikacijah, ki temeljijo na spletnih straneh, je pogosto treba prenesti nadzor med različnimi viri ali JSP. Če želite na primer naročiti spletno mesto za e-trgovino, se morate najprej registrirati, preden nadaljujete. Če še niste registrirani v njihovem sistemu, bo nakupovalni voziček morda moral prenesti nadzor na obrazec JSP, ki je odgovoren za postopek registracije. V ta namen je uporabljeno posredovanje naprej. Uporablja se za posredovanje zahteve iz enega JSP na drugega ali drugega vira v istem kontekstu.
Ta metoda se uporablja tudi za posredovanje zahtev HTTP, vendar je za razliko od posredovanja dvostopenjski postopek, pri katerem se preusmeritev zgodi na strani odjemalca v drugo aplikacijo. Način preusmeritve uporabnika preusmeri na nov URL. Odjemalec brskalnik samodejno vloži novo zahtevo na URL, ki je naveden v glavi preusmeritve, ki prihaja iz strežnika. Zahteva povratno komunikacijo s stranko, zato je relativno počasnejša kot naprej.
Metoda forward () se uporablja za posredovanje zahteve iz enega JSP v drugega ali iz enega JSP v servlet ali iz enega JSP v drug vir v spletni aplikaciji. Nadzor prenese notranje vsebnik in brskalnik / odjemalec ni vključen v postopek. Metoda posredovanja je navedena v RequestDispatcher. Metoda SendRedirect () je navedena v HttPServletResponse in se uporablja za preusmeritev zahteve stranke na drug URL, ki je na voljo na drugem strežniku ali kontekstu. S preusmeritvijo lahko brskalnik preusmerite na drugo aplikacijo.
Ena od ključnih razlik med obema načinoma je, da spletni vsebnik obdeluje vse procese v primeru posredovanja (), URL pa se v brskalniku stranke ne spremeni, zato odjemalec / brskalnik ne sodeluje in jih popolnoma ne pozna, da dejanje je že potekalo. V primeru SendRedirect () metoda nastavi ustrezne glave in vsebino telesa, da zahtevo preusmerijo na drug URL, brskalnik pa poskrbi za pošiljanje nove zahteve na URL, ki je viden odjemalcu, ko se URL spreminja v brskalniku..
Ko se metoda forward () izvede v času zahteve, se trenutna zahteva posreduje na drugo stran JSP in obdelava trenutnega JSP se konča. Zahteva se lahko posreduje v servlet, napisan v programskem jeziku Java ali na statično stran HTML. Zahteva SendRedirect () brskalniku preprosto pove, naj gre na drug URL, pošlje nadzor nad izvrševanjem zunaj spletne aplikacije. Uporablja dvostopenjski postopek, da naloži URL brskalnika, da poda še eno zahtevo, ki nadzor prenese na stranko.
Posrednik () deluje v strežniku in se izvaja hitreje kot SendRedirect (). Preusmeritev mora iti skozi brskalnik in nato počakati, da brskalnik poda novo zahtevo HTTP. S preusmeritvijo strežnik pošlje kodo 302 odzivnosti HTTP z lokacijsko glavo, ki vsebuje nov URL, brskalniku, in potem, ko je brskalnik prejel statusno kodo 302, poda novo zahtevo na URL, ki ga najde v glavi lokacije. Za to je potrebna povratna komunikacija s stranko, zaradi česar je relativno počasnejša kot naprej ().
Učenje razlike med metodami za posredovanje naprej in preusmeritve je eden najpomembnejših delov za razvijalce Java. Čeprav lahko krmilnik na koncu obdelave zahteve izvede bodisi posredniško bodisi preusmeritveno metodo, ima svoj nabor uporab. Večino časa bi uporabili metodo naprej (), ker je le-ta nekoliko hitrejši od SendRedirect (), ki dejansko zahteva povratno komunikacijo s stranko, zaradi česar je počasnejša kot naprej. No, s preusmeritvijo lahko brskalnik usmerite v drugo aplikacijo. Tega ni mogoče storiti s posredovanjem naprej. Na kratko, preusmeritev najbolje deluje, kadar mora ena komponenta izvajati poslovno logiko in deliti rezultate z drugo komponento, medtem ko preusmeritev najbolje deluje, kadar je treba stranko preusmeriti z ene strani na drugo..