I would recommend server-side Java programming . This is not a Java EE book per se, but it explains what a Java server should do and how to do it with a good code example. This will give you reason to understand what Java EE is trying to implement, and why everything is as it is.
In the same vein, I would recommend Expert One-on-One J2EE Development without EJB . This book was written by the founder of the Spring project and gives an idea of ββthe problems with Java EE that Spring is trying to solve. Please note that this was written before Spring was open source, so more βthis is how the server structure works, not Java EE,β not βhow to use the Spring book.β Even if you use direct Java EE, it helps to understand what problems you encountered (with J2EE) or with the motives of Java EE 5 (based on Spring and the Hibernate philosophy).
I would not recommend these specifications from Sun. They are solid, technical, and better used as reference.
source share