Guarda, non è per sembrare scortese (io sono qui sempre per aiutare nel limite del tempo possibile) ma non hai chiarito affatto gli aspetti che dicevo prima.
Anche pensando di usare solo il Jakarta EE (che tra l'altro, è proprio richiesto dal Tomcat 10), in questo ambito base il minimo da saper usare sono le Servlet e le pagine JSP (a meno di voler usare un altro template engine ma è un'altra cosa ...).
La trafila "tipica" in questo contesto è che la request HTTP venga prima gestita da una Servlet, che fa le sue logiche specifiche (es. accesso ad una base dati) e poi fa un forward ad una pagina JSP a cui passa dei dati da visualizzare in HTML (+CSS/ecc...).
Di tutto questo (intendo Servlet/JSP) se/quante nozioni hai?
E comunque, nel codice che hai postato ci sono svariate sviste, tipo:
public void visualizzaContattiprimo(int piano)
public void visualizzaContattisecondo(int piano)
public void visualizzaContattiterzo(int piano)
dove però all'interno NON usi il parametro piano perché hai schiantato 1, 2, 3 .... Quindi o usi 1 solo metodo con il parametro piano di filtro, o più metodi ma senza parametro (ma è ben poco sensato). Già vedendo queste svistone, è difficile intravedere il passaggio a Jakarta EE.