Come sottolineato da @MichaelT, l'architettura generale di un'applicazione ASP.NET e J2EE è fondamentalmente la stessa. Le applicazioni J2EE non devono essere grandi applicazioni Java enormi , puoi montare qualcosa in poche ore che funziona abbastanza bene e può essere implementato.
Le precedenti implementazioni di J2EE erano terribili e goffe e coinvolgevano carichi di configurazione XML per collegare componenti dell'applicazione, ma non è più così. Il framework canonico J2EE è Spring e i suoi pacchetti associati. Con Java 1.5+ è possibile utilizzare le annotazioni al posto dei file di configurazione e altri strumenti e framework (ad es. Maven) rendono la gestione delle dipendenze piuttosto semplice. Non andrò su quale strumento / quadro sia meglio / peggio qui (con tutte le altre cose) ognuno ha il suo posto.
Ho trovato questo link che fornisce un confronto decente di ASP.NET e J2EE e fondamentalmente dice che sono uguali. Il che significa che creerai una serie di JSP e Servlet, ecco cos'è un'applicazione web Java.
In termini di "quale design seguo?" il mio suggerimento è di refactoring / ridisegnare la vostra implementazione quando si esegue il porting su Java. Usa cose come Spring, Hibernate, ecc. Se non stai già utilizzando gli equivalenti .NET. Spesso non hai la possibilità di sviluppare nuovamente un sistema legacy in una nuova lingua, quindi cogli l'occasione per migliorarlo.