JuanZe gives a good answer with a list of frameworks. Here are a few more details.
I would say look at Struts , as it is one of the oldest and simplest frameworks. Struts v1 and v2 are two different beasts; Struts v1.0 was written mostly in one day, and you can learn it in an hour and, perhaps, a very good introduction to web frames.
I am currently using Spring and will not go back to Struts. The nice part about Spring is that it comes with a framework (Spring MVC), but there are dozens of other “good to have” components that will really help you as you continue to study them.
Other developers I work with regularly complain that Seam is the way to go. In the past, they talked about some pretty smart things, but I really like Spring, and our project is married to it.
Wicket also looks interesting; Spring is very difficult for XML, and Wicket gets rid of it, which is very good. However, there is a pretty big gain with some of the XML in Spring, so I would be wary of losing this.
As a complement, I would look at Apache Commons , previously called Jakarta. This is a collection of useful libraries that should probably be included in the core Java API. Discursive has a wonderful book that will guide you through it.
source share