I'm relatively new to programming, though I know the basics of Java. (I've passed the SCJP exam, so that's what I mean by "basics.")
I want to learn J2EE, with a focus on back-end web development, and I'm becoming disoriented by the various pieces of software involved. I've been using NetBeans and MySQL as my IDE and database. What other types of things will I need, and what combinations would you recommend for a beginner?
Some of the things I've seen referenced are Tomcat, Glassfish, Sun Java System Application Server, and Ant. I'm confused as to what the specific function of these things are, to what degree they may overlap in purpose, and what combination would seem reasonable for a beginner.
Also, am I missing any important categories? I'm willing to defer things like Spring, Hibernate, and Struts for a bit, while I learn the basics of J2EE.
Edit: No one has mentioned the Sun Java System Application server, which the J2EE tutorials mention as necessary. Does it do the same thing as Tomcat, or does it provide something extra? Also if someone chooses to give a few clear sentences which explain the purpose of these various tools, I'll accept that answer.