E comunque, quando io richiamo la servlet lanciandola cliccando sull'invio del forum la servlet non dovrebbe ripartire tutta?
mi pare che le servlet vengano inizializzate al momento della loro prima chiamata e distrutte solo al momento della chiusura del servlet container che le ospita, se non viene chiamato esplicitamente il metodo destroy(). Questo spiegherebbe la "persistenza" delle stringhe all'interno del tuo StringBuffer.

e quoto in pieno andrea1979:
Crea lo stringbuffer come variabile locale del metodo in cui lo usi/aggiorni
fai semplicemente cosi', non vedo perche' cercare altre soluzioni, tipo forzare destroy della servlet o altro... questo e' secondo me l'approcio logicamente piu' sensato, oltre che ad essere il piu' semplice.