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

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

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

Какво е Forward?

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

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

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

Разлика между Forward и Redirect

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

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

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

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

Контрол на изпълнението

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

Скорост

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

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

Резюме на Forward Vs. Пренасочване

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

Вижте повече за: ,