Cerco di spiegarlo in modo "grafico".
Questo è ciò che accade con un forward:
codice:
Client Server pagina JSP
+------ request ------>
|
+ ------ forward ------>
|
<--------------- response -------------------+
Il client non sa nulla di quello che fa il server... il server, invece, gestisce una ed una sola request, una ed una sola response.
Questo, invece, è ciò che accade con una redirect:
codice:
Client Server pagina JSP
+------ request ------>
|
<----- response ------+
|
+----------------- nuova request ------------>
|
<------------ nuova response ----------------+
Il server gestisce la prima request e risponde subito al client. Il client, quindi, fa una seconda request ed il server (che gestisce la pagine JSP) risponde con una seconda response.
Tra la prima richiesta e la seconda, i valori memorizzati nella prima request (o response) sono ovviamente persi dopo la prima response.
Spero di aver semplificato a sufficienza.
Ciao.