Det er flere skjermer og servlets som sammen danner et Java-basert webprogram. En JSP sender kontrollen fra en servlet til en annen servlet eller JSP ved hjelp av to metoder - Viderekobling og Omdirigering. Fremover-metoden overfører en forespørsel fra en servlet til en annen ressurs i et webprogram, og denne ressursen kan være en annen servlet, JSP-side eller HTML-fil.
Omadresseringsmetoden, derimot, omdirigerer forespørselen til et annet program. Du kan ikke gjøre dette med en fremover-metode. Hvis en viderekobling treffer en annen ressurs i samme program, bruker den annen URL enn den opprinnelige forespørselsadressen. Hvis du ikke vil svare på en forespørsel, kan du omdirigere forespørselen til en annen nettadresse, og nettleseren sender deretter den nye forespørselen til nettadressen du har gitt. Dette innlegget fremhever et par forskjeller som forklarer de to metodene i detalj.
I web-baserte systemer eller applikasjoner er det ofte behov for å overføre kontroll mellom ulike ressurser eller JSP-er. Hvis du for eksempel ønsker å bestille fra et e-handelsnettsted, må du registrere deg før du fortsetter. Hvis du ikke er registrert hos systemet, må handlekurven kanskje overføre kontroll til JSP-skjemaet som er ansvarlig for registreringsprosessen. Fremoverhandlingen brukes spesielt til dette formålet. Den brukes til å videresende forespørselen fra en JSP til en annen eller en annen ressurs innenfor samme kontekst.
Denne metoden brukes også til å videresende HTTP-forespørsler, men i motsetning til en videresending er det en to-trinns prosess der omadresseringen skjer på klientsiden til en annen applikasjon helt. Viderekoblingsmetoden omdirigerer brukeren til en ny nettadresse. Klientens nettleser gjør automatisk den nye forespørselen på nettadressen som er angitt i omadresseringshodet som kommer fra serveren. Det krever en rundtur kommunikasjon med klienten, og dermed er det relativt tregere enn en fremover.
Fremover () -metoden brukes til å videresende forespørselen fra en JSP til en annen eller fra en JSP til en servlet, eller fra en JSP til en annen ressurs i en webapplikasjon. Kontrollen passerer internt av containeren, og nettleseren / klienten er ikke involvert i prosessen. Fremovermetoden er erklært i RequestDispatcher. SendRedirect () -metoden er erklært i HttPServletResponse og brukes til å omdirigere klientforespørselen til en annen nettadresse som er tilgjengelig på en annen server eller kontekst. Med en omdirigering kan du omdirigere nettleseren til et annet program helt.
En av de viktigste forskjellene mellom de to metodene er at nettbeholderen håndterer alle prosessene internt i tilfelle fremover () og nettadressen endres ikke i klientens nettleser, så klienten / nettleseren er ikke involvert i å forlate dem helt uvitende om at Handlingen har allerede skjedd. I tilfelle SendRedirect () angir metoden de aktuelle overskriftene og kroppsinnholdet for å omdirigere forespørselen til en annen nettadresse, og nettleseren tar seg av å sende den nye forespørselen til nettadressen som er synlig for klienten når nettadressen endres i nettleseren.
Når fremover () -metoden utføres på forespørselstid, blir den nåværende forespørselen videresendt til en annen JSP-side og behandlingen av gjeldende JSP-terminalen blir avsluttet. Forespørselen kan videresendes til en servlet skrevet i Java-programmeringsspråket, eller til en statisk HTML-side. En SendRedirect () -forespørsel forteller bare at nettleseren skal gå til en annen nettadresse, og sender utførelseskontrollen utenfor webapplikasjonen. Den bruker en to-trinns prosess for å instruere nettleseren til å lage en annen forespørsel som overfører kontrollen til klienten.
En forward () opererer i serveren og kjører raskere enn en SendRedirect (). En omadressering må gå gjennom nettleseren, og deretter vente på at nettleseren skal lage en ny HTTP-forespørsel. En omdirigering gjør at serveren sender HTTP-responsstatuskoden 302 med en plasseringsoverskrift som inneholder en ny nettadresse til nettleseren, og etter at nettleseren har mottatt statuskoden 302, gjør den en ny forespørsel til nettadressen som ble funnet i posisjonsoverskriften. Dette krever en rundturskommunikasjon med klienten som gjør det relativt tregere enn en forward ().
Å lære forskjellen mellom fremover- og viderekoblingsmetodene er en av de viktigste delene for Java-utviklere. Mens en kontroller kan utføre enten en fremover eller en omdirigeringsmetode på slutten av behandlingen av en forespørsel, har de sitt eget sett med bruksområder. Mesteparten av tiden, ville du bruke en forward () metode som det er marginalt raskere enn en SendRedirect (), som faktisk krever en rundtur kommunikasjon med klienten gjør det tregere enn en fremover. Vel, med omdirigering, kan du lede nettleseren til en annen applikasjon. Dette kan ikke gjøres med en fremover. I et nøtteskall fungerer en fremover best når en komponent må utføre forretningslogikk og dele resultater med en annen komponent, mens en omdirigering fungerer best når klienten skal omdirigeres fra en side til en annen.