Java web приложение, выбор технологии
если нужен очень Rich клиент, с богатым интерфейсом — GWT
если немного AJAX, но хочется писать в Swing style (листенберы и так далее- Wicket)
если не хотите интерфейс писать на Яве, а будете делать HTML, JavaSciprt, CSS и Вас интересует только сторона сервера — 
Spring MVC, Grails. Будет почти тоже самое, что на сервлетах и jsp, но проще и гибче
Рекомендация ровно одна — используйте то, в чем большинство из вас имеет опыт.

Если опыта в вебе нет совсем, то нужно заложить пару недель на прототипы.
Для простого интерфейса можно обойтись и jsp/jstl, ну или там FreeMarker какой.

Я использовал по работе Struts1, Tapestry4, GWT1-2 (больше года на каждом) — ни один из них я бы не стал использовать в своем личном проекте. Может, в новых версия что-то и стало лучше.

Писал для себя на Lift — отличный фреймворк, но на Scala.