Starpība starp priekšu un novirzīšanu

Ir vairāki ekrāni un servleti, kas kopā veido Java balstītu tīmekļa lietojumprogrammu. JSP nodod vadību no vienas serverses uz otru vai divas JSP, izmantojot divas metodes - uz priekšu un novirzīt. Forward (Forward) metode pārsūta pieprasījumu no vienas servlet uz citu tīmekļa lietojumprogrammas resursu, un šis resurss var būt cita servlet, JSP lapa vai HTML fails..

No otras puses, novirzīšanas metode novirza pieprasījumu uz citu lietojumprogrammu. To nevar izdarīt ar pārsūtīšanas metodi. Ja novirzīšana vienā un tajā pašā lietojumprogrammā nonāk citam resursam, tas izmanto citu URL nekā sākotnējais pieprasījuma URL. Ja nevēlaties atbildēt uz pieprasījumu, varat novirzīt pieprasījumu uz citu URL, un pēc tam pārlūks jauno pieprasījumu nosūta uz jūsu norādīto URL. Šis ieraksts izceļ pāris atšķirības, detalizēti izskaidrojot abas metodes.

Kas ir uz priekšu??

Tīmekļa sistēmās vai lietojumprogrammās bieži ir jāpārvieto kontrole starp dažādiem resursiem vai JSP. Piemēram, ja vēlaties veikt pasūtījumu no e-komercijas vietnes, pirms turpināt, vispirms jāreģistrējas. Ja jūs vēl neesat reģistrējies viņu sistēmā, iespējams, iepirkumu grozs jāpārnes uz JSP veidlapu, kas ir atbildīga par reģistrācijas procesu. Uz priekšu vērsta darbība tiek izmantota īpaši šim mērķim. To izmanto, lai pārsūtītu pieprasījumu no viena JSP uz citu vai citu resursu tajā pašā kontekstā.

Kas ir novirzīšana?

Šo metodi izmanto arī HTTP pieprasījumu pārsūtīšanai, taču atšķirībā no pārsūtīšanas tas ir divpakāpju process, kurā novirzīšana notiek klienta pusē uz citu lietojumprogrammu. Novirzīšanas metode novirza lietotāju uz jaunu URL. Klienta pārlūkprogramma automātiski iesniedz jaunu pieprasījumu uz URL, kas norādīts novirzīšanas galvenē, kas nāk no servera. Tas prasa turp un atpakaļ saziņu ar klientu, tādējādi tas ir salīdzinoši lēnāks nekā priekšu.

Atšķirība starp priekšu un novirzīt

Forward Vs. apraksts Novirzīt

Pārsūtīšanas () metodi izmanto pieprasījuma pārsūtīšanai no viena JSP uz otru vai no viena JSP uz servleti, vai no viena JSP uz citu resursu tīmekļa lietojumprogrammā. Kontrole iekšēji tiek nodota konteinerā, un pārlūks / klients šajā procesā nav iesaistīts. Pārsūtīšanas metode ir deklarēta RequestDispatcher. SendRedirect () metode tiek deklarēta vietnē HttPServletResponse, un to izmanto, lai novirzītu klienta pieprasījumu uz citu URL, kas ir pieejams citā serverī vai kontekstā. Izmantojot novirzīšanu, jūs varat pārlūku novirzīt pavisam citā lietojumprogrammā.

Klientu iesaistīšana priekšdarbos Vs. Novirzīt

Viena no galvenajām atšķirībām starp abām metodēm ir tāda, ka tīmekļa konteiners visus procesus iekšēji apstrādā, ja tiek pārsūtīts (), un klienta pārlūkprogrammā URL nemainās, tāpēc klients / pārlūks nav iesaistīts, atstājot viņus pilnīgi nezināt, ka darbība jau ir notikusi. SendRedirect () gadījumā metode nosaka atbilstošās galvenes un pamattekstu, lai pieprasījumu novirzītu uz citu URL, un pārlūks rūpējas par jauna pieprasījuma nosūtīšanu uz URL, kas ir redzams klientam, mainoties vietrādim URL.

Izpildes kontrole

Kad pieprasījuma brīdī tiek izpildīta metode forward (), pašreizējais pieprasījums tiek pārsūtīts uz citu JSP lapu un pašreizējās JSP apstrāde tiek pārtraukta. Pieprasījumu var pārsūtīt uz servleti, kas rakstīts Java programmēšanas valodā, vai uz statisku HTML lapu. SendRedirect () pieprasījums vienkārši norāda pārlūkprogrammai, lai dotos uz citu URL, nosūtot izpildes kontroli ārpus tīmekļa lietojumprogrammas. Tas izmanto divpakāpju procesu, lai norādītu pārlūka URL, lai izdarītu vēl vienu pieprasījumu, kas nodod kontroli klientam.

Ātrums

Pārsūtīt () darbojas serverī un izpilda ātrāk nekā SendRedirect (). Novirzīšanai ir jāiet cauri pārlūkprogrammai un pēc tam jāgaida, kamēr pārlūks iesniedz jaunu HTTP pieprasījumu. Novirzīšana liek serverim nosūtīt HTTP atbildes statusa kodu 302 ar atrašanās vietas galveni, kas satur jaunu URL pārlūkprogrammai, un pēc tam, kad pārlūks ir saņēmis statusa kodu 302, tas iesniedz jaunu pieprasījumu uz atrašanās vietas galvenē atrasto URL. Tam nepieciešama saziņa ar klientu turp un atpakaļ, kas to padara salīdzinoši lēnāku nekā priekšu ().

Uz priekšu pret novirzīšanu: salīdzināšanas diagramma

Pārskats Forward Vs. Novirzīt

Java izstrādātājiem viena no vissvarīgākajām sastāvdaļām ir atšķirības apgūšana starp priekšu un novirzīšanas metodēm. Lai gan kontrolieris pieprasījuma apstrādes beigās var veikt pārsūtīšanas vai pāradresācijas metodi, viņiem ir savs lietojuma komplekts. Lielāko daļu laika jūs izmantotu pāradresācijas () metodi, jo tā ir nedaudz ātrāka nekā SendRedirect (), kurai faktiski ir nepieciešama saziņa ar turp un atpakaļ ar klientu, padarot to lēnāku nekā pārsūtīšana. Ar novirzīšanu jūs varat pārlūkprogrammu novirzīt uz citu lietojumprogrammu. To nevar izdarīt ar priekšu. Īsumā, pārsūtīšana vislabāk darbojas tad, ja vienam komponentam ir jāpilda biznesa loģika un jāapmainās ar rezultātiem ar citu komponentu, savukārt novirzīšana darbojas vislabāk, ja klients ir jānovirza no vienas lapas uz otru.