What exactly do I need to learn?
Minimally,
- Java the language
- Java the API, including JDBC for database access
- An IDE, or a text editor + Ant
- Java EE, basically, servlets and JSP
- A servlet container (such as Tomcat)
Tomcat seems to be a good web server for Java.
It is "decent". If you are not into EJBs, probably you will not need to learn anything else. Glassfish 3 seems to be pretty cool lately, but I have not played with it much yet. Note, it is "more" than a web server. It is a servlet container (meaning it can run apps using servlet technology).
What options are there for the web?
About a zillion different frameworks. Really, choosing one is really "difficult". It is very tempting to try them all, but ultimately unfeasible.
I know there is hibernate for an ORM.
I am somewhat anti-ORM, but Hibernate is what you need if you need a "full" ORM. You can also try "partial" ORMs, such as Spring's JDBC support or iBatis.
Does java have MVC? what about JSP? can MVC and JSP be together? beans?
Yes, most Java web frameworks do MVC. Spring's MVC is nice, but I can't recommend anything else (especially, not Struts 1!). JSP is just an HTML (or XML) templating engine. Old-school JSP, with embedded Java code is uncool; modern JSP with tag files and libraries is pretty good.
I suppose most frameworks will let you use JSP to render your Vs; Spring's MVC and Struts do. Some will let you use something else too (Velocity, Freemarker, etc.).
Beans is just a convention for objects. Basically, it means that you are using getters and setters (or some alternatives) and you are following some rules. These should let your object be manipulated by certain tools. The typical example is a GUI, some tools will let you build GUI components to edit arbitrary beans (i.e. they will render a form to edit its fields).