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