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.