it all depends in what kind of application the company you work for wishes to build,
But what I usually have found useful would be:
1. Servlet (most MVC framworks are based on this) and all JEE tech was built on top of this.
2. EJB 2.0, EJB 3.0
3. JPA or Entity Beans
5. JSP (this I put at the end of the list, because is a Design concern mostly, so is CSS)
It also depends on which aspects of app development you'll be involved in, the technologies you'll be using, etc.
On the server side it's important to understand the underlying mechanisms, so I'd echo the servlets suggestion. Picking a framework is kind of a crap shoot; if you're learning for the sake of learning I'd say mess around with one action-oriented framework (Spring MVC, Struts 2, Stripes, etc.) and a component-oriented one *maybe* like Wicket (I'd avoid JSF, but that's just me-IMO using it well requires Seam). If you're learning for the sake of getting something done and/or building up company infrastructure, pick a popular one or the one the company already uses.
Personally I'd avoid EJB when starting out unless you know you'll be running in a full app server. At least with EJB3 the major pain points are gone.
I'd learn Spring, but it's not strictly necessary--it just makes a lot of things so much easier. But it's lower on the list, IMO, because it's an additional layer of complexity, even though it can be used in very small, unobtrusive ways at the beginning. It can easily be bolted on to an application later.
I'd learn a unit testing framework, JUnit and TestNG being the major players (as far as I know). I prefer TestNG, but JUnit is more popular.
I'd also scope out many of the popular ancillary libraries, like the Apache Commons libraries (in particular, commons-lang, commons-collections, and commons-io). There are a couple of other great collections libraries that IMO are actually better (Google's and Glazed Lists come to mind) that are handy to have in the toolkit. These APIs make programming in Java noticeably less painful (and that's saying something).
One thing about Java is that while Java-the-language is (relatively) small, Java-the-ecosystem is *huge*, dare I say daunting. It's easy to get lost and/or overwhelmed. Pick something to focus on, if something else wanders into the picture, make a note of it, move on, and come back to it later. Getting lost in a maze of twisty little passages, all alike, is common, and frustrating, so take it a piece at a time.