Java EE 6 справді дивовижна. Єдина проблема полягає в тому, що це близько 2 тижнів, і в даний час є лише 1 контейнер, який пропонує його функції - Glassfish.
Я не маю нічого проти Glassfish, я використовую його всюди, декілька виробничих примірників, я люблю продукт та проект.
З цього приводу, деталі Java EE 6 не перекладаються на Java EE 5. Деякі так і роблять багато, але Web Profile, Servlet 3.0, нові типи Bean, JPA 2 та ін. Їх немає.
Отже, вивчивши спочатку Java EE 6, ви просто обмежуєтесь одним контейнером. Більше приходить, але їх поки немає.
Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo і т. Д. Всі добре працюють із специфікацією Java EE 5 (принаймні ті частини технічних характеристик, які вони підтримують, у Tomcat немає EJB, наприклад).
Я не можу придумати нічого в Java EE 5, що не було перенесено на Java EE 6. Java EE 6 зробила деякі дуже старі аспекти необов’язковими, а ті, про які ви сьогодні просто б не дізналися. Java EE 6 ще більше спростила деякі речі Java EE 5 (зокрема, упаковка, наприклад, EJB Lite).
Вивчіть Java EE 5 зараз, щоб ви могли реально застосовувати те, що ви дізнаєтесь у різних середовищах, а не для того, щоб вивчити Java EE 6 зараз та виявити, що ви не зможете використовувати багато того, що ви дізнаєтесь.
Жодна книга не навчить вас того, що вам потрібно знати. Наприклад, сервлети - це приємна основа, але для всього, що перевищує пару сторінок або кінцевих точок, ви хочете використовувати одну з багатьох фреймворків сторонніх організацій або JSF, і жодна книга не охоплює ядро, а потім рамку зверху того.
Навчальний посібник Java EE 5 хороший в тому, щоби знизити основи, моя головна скарга полягає в тому, що вони не показують вам вихідний код. Швидше вони очікують, що ви просто завантажите і запустите його. Це не обговорюється в підручнику. Я вважав, що книги перших керівників є досить хорошими.
Для веб-програмування сировинні сервлети досить важливі лише для розуміння циклу запитів / відповідей, але вам не потрібно глибокого розуміння, щоб зробити стрибок до сторонньої системи.
Я великий фанат програми Stripes for Action (порівняно з компонентною рамкою), і єдина книга Stripes є відмінною (що робить вибір легким).
Я не можу запропонувати рамкову книгу компонентів, і я фактично не рекомендував би її вимикати. Компонентні рамки дійсно закопують структуру запиту / відповіді ядра HTTP. Вони поховають їх з причини, і вони отримують цінність, поховавши їх, але я вважаю, що для їх ефективності потрібно добре зрозуміти ці поняття на початку. Тому я не пропоную вивчити рамки компонентів спочатку.
Рамка JAX-RS REST, включена в Java EE 6, але легко встановлена в Java EE 5 або будь-якому контейнері сервлетів, є чудовою. Можливо, саме таким повинен був бути сервлет 3.0. Але я не знаю жодної книги для цього.