Omdirigere Vs. Videre i Java

Omdirigere Vs. Videre i Java


Java programmeringsspråk er mye brukt for programmering på skrivebordet, mobil- og servermiljøer. Når en bruker sender inn data fra et skjema eller klikker på linken til en webadresse, kan Java-programmerere bruke Servlet klassen for å finne ut hvordan server-side-programmet svarer på denne forespørselen. En Servlet kan gi svar gjennom omdirigere og videresending. Det er viktig for Java-programmerere å forstå likheten og forskjellene mellom de to metodene, og å vite hvilken du vil bruke, avhengig av deres behov.

Likhet

Både videresending og omdirigere en måte som gjør at en Java Servlet å overføre behandlingen av brukerens data til en annen kontroller i en web-applikasjon. I Model-View-Controller mønster som vanligvis brukes for Java web-applikasjoner, kan en kontroller samhandle med andre kontrollere og styrer samspillet mellom visningene og modeller. Vanligvis en kontroller er en annen Java Servlet, men det kan også være en JSP side.

forskjeller

Videresending handlingen er utført på server-side og er gjennomsiktig til nettleseren på klientsiden. Dette betyr at URL i adresselinjen i nettleseren vil ikke endre seg når videresending skjer. I kontrast er omdirigere handling gjort på klientsiden. Omadresser skjer i to trinn siden serveren må instruere nettleseren på klientsiden for å hente en annen adresse som det omdirigerer til. Som et resultat, vil URL i adressefeltet endres etter omdirigere. Videre kan videresending ikke gjøres til en annen nettadresse ligger utenfor webprogram mens omdirigere kan gjøres på noen områder som ligger overalt.

bruksområder

Videresending bruker RequestDispatcher klassen som er oppnådd fra "getServletContext ()" metode for Servlet. Slik videre, metoden "forward ()" fra "RequestDispatcher klassen kalles For eksempel vil følgende kode videresende svar på en annen side som heter result.jsp.:

String destination = "/WEB-INF/pages/result.jsp";

RequestDispatcher rd = getServletContext () getRequestDispatcher (mål).;

rd.forward (forespørsel, respons);

Omdirigere benytter "sendRedirect ()" -metoden for responsen gjenstand, som er hentet fra den aktuelle Servlet klasse. For eksempel vil følgende kode omdirigere svar på en annen side som heter destination.jsp:

String destination = "/ jsp / destination.jsp";

response.sendRedirect (response.encodeRedirectURL (destinasjon));

betraktninger

Den omdirigere operasjonen er litt tregere enn videresending fordi nettleseren trenger for å utføre to operasjoner for å hente adressen før og etter omdirigere. Videre noen gjenstander som overføres i den opprinnelige forespørselen omfanget er fortsatt tilgjengelig under videresending, men vil gå tapt under omdirigere. Som sådan bør omdirigere bare brukes når nettleseren er lov til å laste den resulterende adresse etter omdirigere. I andre tilfeller bør videresending anvendes.