This is a very difficult question to answer, being in your situation recently, I will try to give some idea. Basically, with Java there is a ton of choices for frameworks, and no one can really tell you which one is best for you, what we can do is give you a breakdown of some technologies.
The following is what I found in looking for the exact answers you want.
There are many technologies in Java that try to provide a full-stack solution. These technologies can be broken down into other technologies, but work well when you use them together.
Basically, there are 3 levels for web applications, presentation, business and data level. Presentation level is the interface that the user sees. You can combine and contrast technologies for these three layers. For example, you can use the front-end with the Spring interface for IOC and Hibernate as your ORM.
There are many great technologies you can use for the presentation layer, including Spring-MVC, STRUTS, Stripes, Wicket, JSF / SEAM and Tapestry among several. Most of them use JSPs for presentation using JSTL, with the exception of the gate, which actually completely separates the html from the logic using Java components (POJOS). There are advantages and disadvantages to both approaches. The advantage of the gate approach is that you have static type checking and full html separation so you can pass it to the designer.
For the business layer, people usually use some kind of management inversion structure (IOC) for Injection Dependency (DI). Spring and Seam are popular structures for IOCs; they have related technologies such as Spring-security and are generally supported by other technologies. Google Guice seems to be popular for the direct DI framework.
Finally, for the data layer, most people tend to use Hibernate or JPA. There are others, but I have no experience with them, and I cannot provide more information.
Tapestry is another framework that tries to be a full stack of what I understand, and takes a gate like (or, I think, Wicket uses a tapestry-like approach). Grails is another full-featured infrastructure using Groovy and built on top of Spring and Hibernate. If you like Rails, Grails is pretty good.
Most of these technologies have a lot of information and very active IRC mailing lists / chats. What you need to do is take a look at them and then decide which one is right for you. No one here can tell you what you like.
If you need a recommendation, I would like to use the Wicket / Guice / Hibernate stack once.