Once you have worked for 3 years or so, I think you should stop and look back about what you have learned over the years. It is not just enough to stop adding more and more knowledge without organizing what we have learned so far.
One step in this direction is to deepen you fundamentals as a (Java) programmer
Go through the following books
Java Concurrency in Practice
Patterns of Enterprise Application
These are just few of the technical literature you should read. There are other good books on Algorithms and other computer science fundamentals.
Regarding the stack of JEE technologies, I insist learning the fundamentals.
How does an MVC work ?
How does an ORM work ?
What is Messaging ? How can it be used ?
Once you know the basics, other things like struts, hibernate etc., are just implementations. It is enough to know that they exist and you'll probably know how it is implmented(kind of).
So learn the basics. Read news/blogs to know the names and their applications.
This is one way to get started. If you are curious enough, you will find more yourself :)