De programmeertaal Java wordt veel gebruikt voor het programmeren op het bureaublad , mobiele en server omgevingen . Wanneer een gebruiker de gegevens van een formulier of klikken op de link naar een webadres indient , kan Java-programmeurs de Servlet klasse te gebruiken om te bepalen hoe de server - side applicatie reageert op dit verzoek . Een Servlet kan worden gereageerd door ombuigen en doorsturen . Het is belangrijk voor Java programmeurs de overeenkomsten en verschillen tussen de twee methoden begrijpen en weten welke te gebruiken, afhankelijk van hun behoeften . Gelijkenis Zowel doorsturen en omleiden biedt een manier die het mogelijk maakt een Java Servlet op de verwerking van gegevens van de gebruiker naar een andere controller binnen een webtoepassing . In het Model - View - Controller patroon dat gewoonlijk wordt gebruikt voor Java Web applicaties , kan een controller communiceren met andere controllers en beheert de interacties tussen de standpunten en de modellen. Meestal een controller is een andere Java Servlet , maar het kan ook een JSP-pagina te zijn . Verschillen De forwarding actie wordt uitgevoerd op de server - side en is transparant voor de webbrowser op de client - side . Dit betekent dat de URL in de adresbalk van de webbrowser zal niet veranderen wanneer forwarding optreedt . In tegenstelling, wordt omgeleid actie gebeurt op de client - side . Redirect gebeurt in twee stappen omdat de server moet de webbrowser op de client - side instrueren op een ander adres te halen dat het wordt omgeleid naar . Als gevolg hiervan , zal de URL in de adresbalk verandert nadat omleiden . Bovendien kan doorsturen niet worden gedaan om een andere URL zich buiten de webapplicatie worden omgebogen kan worden gedaan om sites waar dan ook . Gewoonten Forwarding gebruikt de RequestDispatcher klasse die wordt verkregen uit de werkwijze van de servlet " ) getServletContext ( " . Naar voren , de methode " forward ( ) " van de " RequestDispatcher klasse heet zal bijvoorbeeld de volgende code het antwoord op een andere pagina met de naam result.jsp doorsturen : . String bestemming = " /WEB - INF /pages /result.jsp " ; RequestDispatcher rd = getServletContext ( ) getRequestDispatcher ( bestemming ) ; . rd.forward ( verzoek , respons ) ; omleiden maakt gebruik van de methode van het response object , dat wordt verkregen uit de huidige Servlet klasse " sendRedirect ( ) " Bijvoorbeeld , zal de volgende code het antwoord op een andere pagina met de naam destination.jsp redirect : . String bestemming = " /jsp /destination.jsp " ; response.sendRedirect ( response.encodeRedirectURL ( bestemming ) ) ; overwegingen Het ombuigen operatie is iets langzamer dan doorsturen omdat de webbrowser nodig heeft om twee operaties uit te voeren om het adres te halen voor en na de heroriëntatie . Verder geen voorwerpen overgedragen in het oorspronkelijke verzoek scope zijn nog steeds beschikbaar tijdens expeditie , maar zal tijdens ombuigen verloren . Als zodanig moeten ombuigen alleen worden gebruikt wanneer de browser is toegestaan om de resulterende adres herladen na ombuigen . In andere gevallen dient het doorsturen worden gebruikt .
|