Ich würde Server-Based Java Programming empfehlen. Dies ist kein Java EE-Buch per se, aber es erklärt was ein Java-basierter Server tun muss und wie man es mit gutem Beispielcode macht. Es gibt Ihnen die Grundlage, um zu verstehen, was Java EE versucht zu erreichen und warum die Dinge so sind, wie sie sind.
In der gleichen Ader würde ich Expert One-on-One J2EE Development without EJB empfehlen. Dieses Buch wurde vom Gründer des Spring-Projekts geschrieben und gibt einen Einblick in die Probleme mit Java EE, die Spring zu lösen versucht. Beachten Sie, dass dies geschrieben wurde, bevor Spring Open Source war, also ist es mehr ein "so ist ein Server-Framework, das ist nicht Java EE könnte" Buch, nicht ein "wie man Spring 'Buch zu arbeiten. Selbst wenn Sie gerade Java EE verwenden, ist es hilfreich zu wissen, welche Probleme Sie (mit J2EE) haben könnten oder was die Motivation für Java EE 5 war (basierend auf Spring & Hibernate Philosophien).
Ich würde die tatsächlichen Spezifikationen von Sun nicht empfehlen. Sie sind dicht, technisch und besser als Referenz verwendet.