Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Redirect vs . Forward in Java

Il linguaggio di programmazione Java è ampiamente usato per la programmazione sul desktop , mobile e ambienti server . Quando un utente invia i dati da un modulo o fa clic sul collegamento a un indirizzo Web , i programmatori Java possono utilizzare la classe Servlet per determinare come l'applicazione lato server risponde a questa richiesta . Un Servlet può fornire risposte attraverso il reindirizzamento e l'inoltro . E 'importante per i programmatori Java per comprendere la somiglianza e le differenze tra i due metodi , e di sapere quale usare a seconda delle loro esigenze . Somiglianza

Sia l'inoltro e il reindirizzamento fornisce un modo che consente a un servlet Java per trasferire al trattamento dei dati degli utenti a un altro controller all'interno di una applicazione web. Nel pattern Model - View-Controller che è comunemente usato per le applicazioni Web Java , un controller può interagire con altri controllori e gestisce le interazioni tra i punti di vista e dei modelli . Di solito un controller è un altro Servlet Java , ma può anche essere una pagina JSP .
Differenze

L'azione di inoltro viene eseguita sul lato server ed è trasparente il browser Web sul lato client . Questo significa che l'URL nella barra degli indirizzi del browser Web non cambierà quando si verifica l'inoltro . Al contrario , l'azione reindirizzamento è fatto sul lato client . Redirect avviene in due fasi in quanto il server deve istruire il browser Web sul lato client per andare a prendere un altro indirizzo che si sta riorientando a . Di conseguenza , l'URL nella barra degli indirizzi cambierà dopo il reindirizzamento . Inoltre , l'inoltro non può essere fatto a un altro URL situato al di fuori dell'applicazione Web riorientando può essere fatto per altri siti ubicati in qualsiasi luogo .
Usi

Forwarding utilizza il classe RequestDispatcher che è ottenuto dal metodo della servlet " ) getServletContext ( " . Per ora , il metodo " forward ( )" della " classe RequestDispatcher si chiama , ad esempio, il codice seguente inoltrerà la risposta a un'altra pagina chiamata result.jsp : .

String destinazione =" /WEB-INF /pages /result.jsp ";

RequestDispatcher rd = getServletContext ( ) getRequestDispatcher ( destinazione ),.

rd.forward ( richiesta, risposta ) ;

Reindirizzamento utilizza il " sendRedirect ( ) " metodo dell'oggetto di risposta , che si ottiene dalla classe Servlet attuale , ad esempio, il codice seguente reindirizzerà la risposta a un'altra pagina chiamata destination.jsp : .

String destinazione = " /jsp /destination.jsp " ;

response.sendRedirect ( response.encodeRedirectURL ( destinazione) ) ;
Considerazioni

L'operazione di reindirizzamento è leggermente più lento inoltro in quanto il browser deve eseguire due operazioni per andare a prendere l' indirizzo prima e dopo il riorientamento . Inoltre , tutti gli oggetti trasmessi nell'ambito richiesta originale sono ancora disponibili durante l'inoltro ma verranno persi durante il reindirizzamento . come tale , il reindirizzamento è consentito solo quando il browser è permesso di ricaricare l'indirizzo risultante dopo il reindirizzamento . Negli altri casi , l'inoltro deve essere utilizzato .

 

Programmazione © www.354353.com