La questione qui non è tanto della "durata" ma del fatto che la sessione è UNA sola (e quindi ci tieni 1 Id) mentre nulla vieta all'utente di tenersi diversi tab o finestre di quella stessa istanza del browser aperte (che condividono la sessione) e tentare di gestire contatti con Id diversi. Avresti ben presto dei casini.
Quando fai
request.getRequestDispatcher("updateContact.jsp"). forward(request, response);
i dati del contatto li hai tutti nell'oggetto Contact che passi nella sessione e sono quindi accessibili alla pagina.
Quindi puoi benissimo fare in modo che al submit del form venga inviato ANCHE il Id del contatto.
Il Id del record di norma non lo si fa editare dall'utente, quindi non lo metterai certo in un campo di testo visibile. Ma lo puoi mettere in un campo "hidden", che viene comunque inviato con il resto dei dati nel form.