Basically you explained Model 2 or MVC, in Java this is classically done with JSPs and a controlling servlet behind the scenes. Java web frameworks basically provide their own servlet, and you plug into it somehow, by creating your own "Action" (Struts) or "Controller" (Spring) classes..
if you're using Java for web applications, picking the right frameworks is key. Ian put some good ones up, but I'd go with:
Spring for Web MVC (http://www.springframework.org) an alternative to Struts MVC.
and also Spring framework for managing everything else (Spring makes JDBC easy) (even if you use Struts for the web mvc part, Spring can make the rest easier)
If you go with Spring, it makes using Ibatis ORM so easy to use.
Ibatis would be an alternative to Hibernate.
basically, if you're doing Java development, use Spring.
At its heart, Spring is a way to manage Singletons and other objects in a sort of container, using dependency injection.
Beautiful, this is really what I'm looking for the most. .NET has code behind pages, which are I guess their own version of an MVC, and it seems this works somewhat silmilar.