Diferența dintre transmitere și redirecționare

Există mai multe ecrane și servleturi care formează împreună o aplicație web bazată pe Java. Un JSP trece controlul de la un servlet la alt servlet sau JSP folosind două metode - Redirecționare și Redirecționare. Metoda Forward transmite o cerere dintr-un servlet către o altă resursă într-o aplicație web și această resursă poate fi un alt servlet, o pagină JSP sau un fișier HTML.

Metoda Redirecționare, pe de altă parte, redirecționează cererea către o altă aplicație. Nu puteți face acest lucru cu o metodă în față. Dacă o redirecționare atinge o altă resursă în aceeași aplicație, atunci se folosește o adresă URL diferită de adresa URL originală a solicitării. Dacă nu doriți să răspundeți la o solicitare, puteți redirecționa solicitarea către o altă adresă URL, iar browserul trimite apoi noua solicitare la adresa URL furnizată de dvs. Acest post evidențiază câteva diferențe care explică în detaliu cele două metode.

Ce este înainte?

În sistemele sau aplicațiile bazate pe web, este adesea nevoie să se transfere controlul între diferite resurse sau JSP-uri. De exemplu, dacă doriți să plasați o comandă de pe un site de comerț electronic, trebuie să vă înregistrați mai întâi înainte de a continua. Dacă nu sunteți încă înregistrat în sistemul lor, este posibil ca coșul de cumpărături să necesite transferarea controlului la formularul JSP care este responsabil pentru procesul de înregistrare. Acțiunea în perspectivă este utilizată special în acest scop. Acesta este folosit pentru a transmite cererea de la un JSP la altul sau la o altă resursă în același context.

Ce este redirecționarea?

Această metodă este, de asemenea, utilizată pentru a trimite cereri HTTP, dar spre deosebire de o transmitere, este un proces în două etape în care redirecționarea se întâmplă la nivelul clientului într-o altă aplicație diferită. Metoda de redirecționare redirecționează utilizatorul la o nouă adresă URL. Browser-ul clientului face automat noua solicitare pe adresa URL specificată în antetul de redirecționare care vine de la server. Ea necesită o comunicare cu clientul, astfel că este relativ mai lentă decât o transmitere.

Diferența dintre Redirecționare și Redirecționare

Descrierea lui Forward Vs. Redirecţiona

Metoda forward () este folosită pentru a transmite cererea de la un JSP la altul sau de la un JSP la un servlet sau de la un JSP la altul dintr-o aplicație web. Comanda este transmisă intern de către container și browserul / clientul nu este implicat în proces. Metoda forward este declarată în RequestDispatcher. Metoda SendRedirect () este declarată în HttPServletResponse și este utilizată pentru a redirecționa solicitarea clientului către o altă adresă URL disponibilă pe un alt server sau context. Cu o redirecționare, puteți redirecționa browserul într-o altă aplicație diferită.

Implicarea clienților în Forward Vs. Redirecţiona

Una dintre diferențele cheie dintre cele două metode este aceea că containerul web se ocupă de toate procesele intern în cazul transmiterii () și adresa URL nu se modifică în browser-ul clientului, astfel încât clientul / browserul nu este implicat lăsându-i complet neștiind că acțiunea a avut deja loc. În cazul serviciului SendRedirect (), metoda stabilește anteturile și conținutul corporale corespunzătoare pentru a redirecționa cererea către o altă adresă URL, iar browserul are grijă să trimită noua solicitare la adresa URL vizibilă clientului, pe măsură ce se modifică adresa URL în browser.

Controlul execuției

Când metoda forward () este executată la momentul solicitării, cererea curentă este transmisă la o altă pagină JSP și procesarea JSP curentă este terminată. Cererea poate fi trimisă unui servlet scris în limba de programare Java sau într-o pagină HTML statică. Cererea SendRedirect () indică pur și simplu browserului să meargă la o altă adresă URL, trimițând controlul de execuție în afara aplicației web. Utilizează un proces în două etape pentru a instrui URL-ul browserului să facă o altă solicitare care transferă controlul către client.

Viteză

O operație forward () operează în cadrul serverului și execută mai repede decât o SendRedirect (). O redirecționare trebuie să treacă prin browser și apoi să aștepte ca browserul să facă o nouă solicitare HTTP. O redirecționare face ca serverul să trimită codul de stare a răspunsului HTTP 302 cu un antet de locație care conține o nouă adresă URL în browser și după ce browserul a primit codul de stare 302, face o nouă solicitare adresei URL găsită în antetul locației. Aceasta necesită o comunicare cu clientul cu o rută de deplasare, ceea ce o face relativ mai lentă decât o operație forward ().

Redirecționare față-verso: Comparație

Rezumat al Forward Vs. Redirecţiona

Învățarea diferenței dintre metodele de redirecționare și de redirecționare este una dintre cele mai importante componente pentru dezvoltatorii Java. În timp ce un controler poate efectua o metodă de transmitere sau o redirecționare la sfârșitul procesării unei cereri, ei au propriul set de utilizări. De cele mai multe ori, utilizați o metodă forward (), deoarece este puțin mai rapidă decât o SendRedirect (), care necesită, de fapt, o comunicare cu clientul rotund, făcându-l mai lent decât o transmitere. Ei bine, cu o redirecționare, puteți direcționa browserul spre o altă aplicație. Acest lucru nu se poate face cu un avans. Pe scurt, un avantaj funcționează cel mai bine atunci când o componentă trebuie să efectueze o logică de afaceri și să împartă rezultatele cu o altă componentă, în timp ce redirecționarea funcționează cel mai bine atunci când clientul ar trebui să fie redirecționat dintr-o pagină în alta.