Постоји више екрана и сервлета који заједно творе веб апликацију засновану на Јави. ЈСП преноси контролу из једног сервлета у други сервлет или ЈСП користећи две методе - Напријед и Преусмери. Метода Прослеђивање прослеђује захтев из једног сервлета на други ресурс у веб апликацији и овај ресурс може бити други сервлет, ЈСП страница или ХТМЛ датотека.
Метода преусмеравања, с друге стране, захтев преусмерава на другу апликацију. То не можете учинити методом прослеђивања. Ако преусмеравање погоди другачији ресурс у истој апликацији, тада се користи другачији УРЛ од оригиналног УРЛ-а захтева. Ако не желите да одговорите на захтев, можете да га преусмерите на други УРЛ и прегледач затим пошаље нови захтев на УРЛ који сте добили. У овом посту налази се неколико разлика које детаљно објашњавају две методе.
У системима или апликацијама заснованим на вебу, често постоји потреба за преносом контроле између различитих ресурса или ЈСП-а. На пример, ако желите да наручите са места за е-трговину, прво морате да се региструјете пре него што наставите. Ако још нисте регистровани у њиховом систему, кошарица ће можда морати да пренесе контролу у ЈСП образац који је одговоран за процес регистрације. Просле акције се користе посебно за ову сврху. Користи се за прослеђивање захтева са једног ЈСП на други или други ресурс у истом контексту.
Ова метода се такође користи за прослеђивање ХТТП захтева, али за разлику од прослеђивања, то је процес у два корака где се преусмеравање дешава на страни клијента у другу апликацију уопште. Метода преусмеравања преусмерава корисника на нову УРЛ адресу. Клијентов прегледач аутоматски поставља нови захтев на УРЛ адресу наведену у заглављу преусмеравања који долази од сервера. Захтева повратну комуникацију са клијентом, тако да је релативно спорија од напријед.
Метода форвард () користи се за просљеђивање захтјева са једног ЈСП на други или из једног ЈСП у сервлет или из једног ЈСП у други ресурс у веб апликацији. Контролу интерно преноси контејнер и прегледач / клијент нису укључени у процес. Метода просљеђивања декларирана је у РекуестДиспатцхер-у. Метода СендРедирецт () декларирана је у ХттПСервлетРеспонсе и користи се за преусмјеравање захтјева клијента на други УРЛ који је доступан на другом послужитељу или контексту. Помоћу преусмеравања можете прегледач потпуно преусмерити на другу апликацију.
Једна од кључних разлика између ове две методе је да веб контејнер интерно обрађује све процесе у случају прослеђивања (), а УРЛ се не мења у прегледачу клијента, па клијент / прегледач није укључен што их потпуно не зна да акција се већ догодила. У случају СендРедирецт (), метода поставља одговарајуће заглавља и садржај тела како би захтев преусмјерио на други УРЛ, а прегледач се брине о томе да нови захтјев пошаље на УРЛ који је видљив клијенту док се УРЛ мијења у прегледачу..
Када се метода форвард () изврши у време захтева, тренутни захтев се прослеђује на другу ЈСП страницу и обрада тренутног ЈСП се прекида. Захтјев се може прослиједити на сервлет написан на програмском језику Јава или на статичку ХТМЛ страницу. Захтев за СендРедирецт () једноставно каже прегледачу да оде на другу УРЛ адресу, шаљу контролу извршења изван веб апликације. Користи поступак у два корака како би упутио УРЛ прегледача да направи још један захтев који контролу преноси на клијента.
Напред () делује у оквиру сервера и извршава се брже од СендРедирецт (). Преусмеравање мора да прође кроз претраживач, а затим сачека да прегледач упути нови ХТТП захтев. Преусмеравање чини да сервер шаље код 302 одговора ХТТП одговора са заглављем локације која садржи нову УРЛ адресу прегледача, а након што је прегледач примио статусни код 302, упути нови захтев на УРЛ који се налази у заглављу локације. За ово је потребна повратна комуникација са клијентом, што га чини релативно спорим од преноса ().
Учење разлике између напријед и преусмеравања је један од најважнијих делова за Јава програмере. Иако контролер може на крају обраде захтева извести или прослеђивање или метод преусмеравања, они имају свој скуп употреба. Већину времена користили бисте методу напријед (), јер је она брже од СендРедирецт (), којој је у ствари потребна комуникација у кружном путовању са клијентом и чини је споријом од напријед. Па, преусмеравањем можете да усмерите прегледач на другу апликацију. То се не може учинити напред. Укратко, преусмеравање најбоље функционише када једна компонента мора да ради пословну логику и дели резултате са другом компонентом, док преусмеравање најбоље функционише када клијент треба да буде преусмерен са једне странице на другу..