Разлика между напред и пренасочване

Има множество екрани и сървлета, които заедно образуват уеб приложение, базирано на Java. JSP предава управлението от един сървлет на друг сървлет или JSP, използвайки два метода - Напред и Пренасочване. Методът Forward препраща заявка от един сървлет към друг ресурс в уеб приложение и този ресурс може да бъде друг сървлет, JSP страница или HTML файл.

Методът на пренасочване, от друга страна, пренасочва заявката към друго приложение. Не можете да направите това с метод напред. Ако пренасочване удари различен ресурс в едно и също приложение, то той използва различен URL от оригиналния URL адрес на заявката. Ако не искате да отговорите на заявка, можете да пренасочите искането към друг URL адрес и браузърът след това изпраща новата заявка до предоставения от вас URL адрес. Тази публикация подчертава няколко разлики, обясняващи двата метода подробно.

Какво е напред?

В уеб-базирани системи или приложения често има нужда от прехвърляне на контрол между различни ресурси или JSP. Например, ако искате да направите поръчка от сайт за електронна търговия, трябва първо да се регистрирате, преди да продължите. Ако все още не сте регистрирани в тяхната система, кошницата може да се наложи да прехвърли контрола във формуляра JSP, който е отговорен за процеса на регистрация. Предназначението за действие се използва специално за тази цел. Използва се за препращане на заявката от един JSP към друг или друг ресурс в същия контекст.

Какво е пренасочване?

Този метод се използва и за пренасочване на HTTP заявки, но за разлика от препращането, това е процес в две стъпки, при който пренасочването се случва от страна на клиента към друго приложение изцяло. Методът за пренасочване пренасочва потребителя към нов URL адрес. Браузърът на клиента автоматично прави новата заявка на URL адреса, посочен в заглавката за пренасочване, идваща от сървъра. Изисква обръщане в обратна посока с клиента, като по този начин е сравнително по-бавно, отколкото напред.

Разлика между напред и пренасочване

Описание на Forward Vs. Пренасочване

Методът forward () се използва за пренасочване на заявката от един JSP към друг или от един JSP към сервлет или от един JSP към друг ресурс в уеб приложение. Контролът се предава вътрешно от контейнера и браузърът / клиентът не участва в процеса. Методът за пренасочване се декларира в RequestDispatcher. Методът SendRedirect () е деклариран в HttPServletResponse и се използва за пренасочване на клиентската заявка към различен URL адрес, който е наличен на различен сървър или контекст. С пренасочване можете да пренасочите браузъра към друго приложение изцяло.

Включване на клиенти в Forward Vs. Пренасочване

Една от ключовите разлики между двата метода е, че уеб контейнерът обработва вътрешно всички процеси в случай на пренасочване (), а URL адресът не се променя в браузъра на клиента, така че клиентът / браузърът не е включен, оставяйки ги напълно неосъзнати, действие вече е извършено. В случай на SendRedirect (), методът задава подходящите заглавки и съдържание на тялото, за да пренасочи заявката към друг URL адрес и браузърът се грижи за изпращането на новата заявка до URL адреса, който е видим за клиента, докато URL се променя в браузъра.

Контрол върху изпълнението

Когато методът forward () се изпълни в момента на заявка, текущата заявка се препраща към друга страница на JSP и обработката на текущия JSP се прекратява. Заявката може да бъде препратена до сервлет, написан на езика за програмиране на Java, или към статична HTML страница. Заявка SendRedirect () просто казва на браузъра да премине към различен URL адрес, като изпраща контрола за изпълнение извън уеб приложението. Той използва процес в две стъпки, за да инструктира URL адреса на браузъра, за да направи друга заявка, която прехвърля контрола на клиента.

скорост

А напред () работи в рамките на сървъра и се изпълнява по-бързо от SendRedirect (). Пренасочването трябва да премине през браузъра и след това да изчака браузъра да направи нова HTTP заявка. Пренасочването кара сървъра да изпраща код на състоянието на отговора на HTTP 302 с заглавка на местоположението, съдържаща нов URL адрес на браузъра, и след като браузърът получи код на състоянието 302, той отправя нова заявка към URL адреса, намерен в заглавката на местоположението. Това изисква обръщане в обратна посока с клиента, което го прави сравнително по-бавно, отколкото напред ().

Напред срещу пренасочване: Сравнителна диаграма

Обобщение на Forward Vs. Пренасочване

Научаването на разликата между методите за пренасочване и пренасочване е една от най-важните части за разработчиците на Java. Докато контролерът може да извърши или пренасочване, или метод за пренасочване в края на обработката на заявка, те имат собствен набор от приложения. През повечето време бихте използвали метод напред (), тъй като той е незначително по-бърз от SendRedirect (), който всъщност изисква комуникация с клиента и обратно, което го прави по-бавно, отколкото напред. Е, с пренасочване можете да насочите браузъра към друго приложение. Това не може да се направи с напред. С две думи препращането работи най-добре, когато един компонент трябва да изпълнява бизнес логика и да споделя резултати с друг компонент, докато пренасочването работи най-добре, когато клиентът трябва да бъде пренасочен от една страница на друга.