I would recommend Java and Spring framework - it solves all the burden of typical Java web application and provides you with clear way to get what you want.
I personally use Hibernate - JPA - Spring framework (or Spring Web Flow) - Tiles - Freemarker stack that gives me ability to create new web applications rather fast, but altogether they impose rather steep learning curve.
I would suggest - just give Spring a try for a start.