I'm interested in beginning Java web programming but I'm unsure as to where to start and what I have read has only managed to confuse me. First: What should I learn if I want to develop a Java web application? Second: I've heard many names thrown around and need some help making sense of it all. What is/are Jakarta, Struts, Tomcat, EJB/Hibernate, Ant, JSP, Servelets and how do they relate to each other? Third: I've heard that JSP is for seperating presentation and application logic, how do I process the form a user sends in? A 'Checkout' button on a shopping cart would be a good example. Do I use JSP, a servelet, other?