Ci sono diverse soluzioni e tutte che consentono di mantenere i dati già inseriti.
La prima, con il reload della pagina.
paginadati.jsp
codice:
...
...
<form name="dati" action="elaboradati.jsp" method="post">
...
...
<select name="prov" onchange="this.form.action='paginadati.jsp';this.form.submit();">
<option value="1">MI</option>
<option value="2">BS</option>
...
...
</select>
</form>
Ossia cambi l'action del form nella pagina stessa contenente il form. Devi chiaramente aggiungere un po' di logica server-side al form... ad esempio tutti i "value" saranno del tipo
codice:
<input type="text" name="dato_x" value="<% =request.getParameter("dato_x");%>" />
e similmente per le select (caricane le voci tramite un ciclo for con i dati delle option e aggiungi selected all'option mandata a browser)
L'altra soluzione invece prevede l'uso di una chiamata asincrona, ossia l'utilizzo di AJAX... se non sei tanto pratico e vuoi approfondire c'è una guida fatta bene qui su html.it