Je rejoins Julien39. De plus, il existe un grand nombre d'implémentations J2EE (Spring, Struts, Hibernate, etc...) et il est possible d'utiliser un grand nombre d'API pour réaliser une interface graphique. En fait, l'utilisation de J2EE ne t'oblige pas à utiliser une API particulière pour ton interface graphique. Tu peux très bien faire une application Web en JSP (client léger) ou une application classique avec AWT, Swing, JavaFX, SWT, etc... (client lourd).
Je rejoins ce qui a été dit plus haut, JSF est adéquat pour réaliser rapidement des interfaces, et est plus "simple" si tu ne maîtrise pas la programmation graphique style Swing/AWT. Après, tout dépend de ton sujet, et ce n'est pas les tutos qui manquent sur la toile.