I want to learn, at least at a basic level, how to build Java web applications (coming from a .NET background). I would like to be able to build, deploy a simple CMS type application from the ground up.
What exactly do I need to learn?
Tomcat seems to be a good web server for Java.
What options are there for the web? I know there is Hibernate for an ORM.
Does Java have MVC? What about JSP? Can MVC and JSP be together? NetBeans?
Maybe a book that covers all of these?
You need HTML, CSS, and JavaScript - all the usual suspects for web development.
Tomcat does have a web server built in, but it's a servlet/JSP engine. Apache is the pure web server.
You need to learn JSP, which is a templating language for generating servlets that generate HTML output. You'll want to write them using JSTL, not scriptlets.
If you're doing CRUD applications, you'll need to learn JDBC and relational databases. You should do that before trying Hibernate or any other ORM, because it's the foundation on which they're built.
JavaBeans are just standards for Java objects.
If you're up for it, I'd recommend the Spring framework.
I consider most of the traditional Java web development options to be pretty heavy-weight, and there are some good alternatives:
Play is an MVC framework which is focused on being lightweight, straightforward, and enabling rapid development — while sticking with pure Java, as opposed to a more dynamic JVM-based language. It's fairly new but already impressive, and a good community has built up around it quickly.
Grails is an MVC framework, inspired by Ruby on Rails, which is written in, and uses, Groovy, a Java-based scripting language. Grails is mature, robust, and widely respected, with a strong community. Groovy is basically a superset of Java, with better syntax and some great features such as closures, so learning it is a great way to learn Java.
If you need/want to build RESTful web sites/services/applications, Restlet is a fantastic framework — I'm a big fan. It's simple, straightforward, and yet flexible. Great community too.
Google's App Engine is an interesting option as well. It's hosted, which may or may not be of interest, but it has a fairly simple API, and a good SDK.
I'm sure there are others, but these are the ones I can think of off the top of my head.
Good luck, and have fun!
Better you learn java.Then you learn Servlets and JSP.Then go for MVC you go to Struts or Spring or any other java/java enabled framework.