Are you talking about a "web site" or something richer like a back office app (lots of controls and fields and complicated workflows)?
If you're talking a web site, something more content oriented, and you want to stick with Java, I vote Stripes -- it embraces HTTP in all (well, at least most) of its glory, it stays out of your way, and is very flexible. We've written a very nice framework on top of Stripes leveraging JSP and JSP Tag Files. We can knock out screens quite quickly.
If you have a more complicated application in mind, then consider one of the component frameworks. Wicket is quite popular, but JSF has a bunch of tooling and widgets, and works with Seam, which gets rave reviews.