What exactly do I need to learn?
I assume that you're already familiar with client side technologies like HTML/CSS/JS, so I'll leave it aside. For the case that, the tutorials at w3schools.com are enough to understand the trivial stuff and as reference and as books I can recommend the "X for Dummies" series like "HTML for Dummies". Have a look at Amazon.com. Also see this answer for an overview of useful links regarding the necessary client side matters. I also assume that you're already familiar with basic Java. Follow the Sun basic tutorials and if possible, go get a SCJP book or course as well.
Then you can start with JSP/Servlet. Good tutorials can be found in the Sun Java EE 5 tutorial part II chapters 1 - 8 and at Coreservlets.com (Beginner/Intermediate and Advanced, also JDBC). Good books for that are the Head First Servlets & JSP and Core Servlets and JSP (older versions of this book are also online available as PDF).
Tomcat seems to be a good web server for Java.
It is. It is however limited in capabilities (it's a simple servlet container, implementing only the JSP/Servlet parts of the Java EE API), if you ever want to go EJB or JPA, then you'd like to pick another, e.g. JBoss AS or Glassfish. JBoss uses Tomcat under its hoods and adds more Java EE capabilities to it. Glassfish is Sun's own complete Java EE implementation.
Two weeks ago, the Java EE 6 came out, which is pretty damn good, but as far now only the Glassfish V3 server supports it. Tomcat 7.0 is still on its way, implementing the greatly improved Servlet 3.0 API, it might take some months however. If you can, I would more recommend to go ahead with Java EE 6, it is a major improvement step as opposed to Java EE 5. Here's an overview of the new features. In the case you'd like to go ahead with JEE6, JSP/Servlet are covered in Java EE 6 tutorial part II chapter 10.
What options are there for the web? I know there is hibernate for an ORM.
You can also use JPA, part of Java EE. You can learn it at Java EE 5 tutorial part V or Java EE 6 tutorial part IV. It's good to know that the guy behind Hibernate (Gavin King) was hired by Sun to do all the JPA works. Hibernate also has a JPA implementation (the EntityManager).
Does java have MVC? what about JSP? can MVC and JSP be together? beans?
The Java EE's MVC framework is called JSF. Prior to Java EE 6 it used to run on JSP, which is a fairly legacy view technology. It is been replaced by Facelets. You can still use Facelets in Java EE 5, but you have to install it separately. In Java EE 6, it is included and covered in Java EE 6 tutorial part II chapters 1 - 9. You can by the way also use JSF on Tomcat, you only have to install it separately. Just download the JAR's from the JSF dev homepage and place them in /WEB-INF/lib
. Glassfish as being a complete Java EE implementation already ships with JSF.
Maybe a book that covers all of these?
There are several books. I would recommend to start with a book targeted on JSF and eventually also in combination with JPA, however, most of those are still targeted on Java EE 5. Have a look at Amazon.com and ensure that you choose the most recent book covering the subject. Thus not an old book for JSF 1.0 or so. For example the book as suggested by Pascal in the comments below, or a Second Edition which is to be released some months later.
See also: