Что нужно узнать для создания веб-приложений на Java в Java EE 6?

Моя цель - делать веб-приложения!

Я закончил читать книги "Headfirst - Java" и "Headfirst - Servlets and JSP".

Поскольку эта тема (веб-приложения) очень большая и сложная, я хотел бы спросить, что я должен узнать дальше. Я чувствую переутомление, когда читаю такие ключевые слова, как Java EE, EJB, JSF, JPA, Glassfish ... но я не сдамся.

Может кто-нибудь сказать, пожалуйста, как мне следует продолжить обучение? Должен ли я взять книгу, подобную этой: Начало платформы Java EE 6 с GlassFish 3: от новичка до профессионала, или я должен просто сделать некоторые онлайн-уроки?

Спасибо!

7 ответов

Решение

Даже если я знаю, что это будет спорным, мой совет будет начать только с Java EE 6. Итак, возьмите GlasshFish v3 и получите книгу " Начало платформы Java EE 6 с помощью GlassFish 3: от новичка до профессионала" или следуйте учебному руководству по Java EE 6. На мой взгляд, книга (которую я начал читать, так что я знаю, о чем говорю) содержит больше рекомендаций, которые могут быть предпочтительнее, если "все" для вас ново (она охватывает как платформу Java EE, так и ее API). и среда для создания, развертывания ваших приложений).

Теперь, как я уже сказал, я уже слышу голоса, говорящие о таких вещах, как "Java EE тяжелый, вместо этого используйте Spring, изучите Struts или Wicket или Stripes для уровня представления, изучите Hibernate для сохранения или нет, потому что мне не нравится ORM, вместо этого используйте iBatis или прямой JDBC (вы увидите, что это круто с Spring, Spring так круто), и используйте Tomcat (а почему не Jetty) или JBoss, или просто забудьте все это и отправляйтесь на Grails, и бла-бла-бла-бла..."

Но я не думаю, что это действительно помогает вам, и без наставничества или руководства (и вы не найдете не устаревшего уникального ресурса, охватывающего все комбинации), это может показаться очень запутанным для новичка.

Итак, поскольку я считаю, что Java EE 6 является большим улучшением по сравнению с предыдущими версиями Java EE, поскольку он предоставляет действительно хорошие стандартные API для всех ваших потребностей (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI и т. д.), потому что все эти API более чем достойны, потому что в их изучении нет ничего плохого, потому что это уже большая задача, потому что вам нужно с чего-то начинать, я бы сосредоточился только на Java EE 6 и забыл другие рамки на данный момент. Точнее, я бы начал с веб-профиля Java EE 6 (а затем добавил бы некоторые вещи, если вы хотите пойти дальше).

Сделав это, 1) вы начнете и вы узнаете совершенно новые вещи и 2) вы уделите некоторое время всем другим фреймворкам и / или инструментам для адаптации и докажете, что они по-прежнему необходимы. И если это произойдет, еще будет время поэкспериментировать с выжившими, и вы сможете лучше понять, почему они существуют.

Мой совет1 - прекратить читать книги и приступить к реализации. По моему опыту, книжное обучение является плохой заменой знаниям, которые вы получаете, фактически делая вещи.


1 - Контекст: это совет тому, кто только что закончил читать две книги на эту тему.

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 хорош для подведения основ, моя главная претензия в том, что они не показывают вам исходный код. Скорее они ожидают, что вы просто загрузите и запустите его. Это не обсуждается в учебнике. Я обнаружил, что книги Head First были довольно хорошими.

Для веб-программирования необработанные сервлеты достаточно важны, чтобы понять цикл запрос / ответ, но вам не нужно глубокое понимание, чтобы перейти к сторонней среде.

Я большой поклонник Stripes для фреймворка Action (против фреймворка для компонентов), и единственная доступная книга Stripes превосходна (что делает выбор легким выбором).

Я не могу предложить книгу по Компонентным фреймворкам, и на самом деле я бы не рекомендовал ее сразу. Компонентные структуры действительно скрывают основные структуры запросов / ответов HTTP. Они хоронят их по какой-то причине и приобретают ценность, хороня их, но я считаю, что для того, чтобы быть эффективными, вам необходимо иметь четкое понимание этих концепций на раннем этапе. Вот почему я не предлагаю сначала изучать компонентную среду.

Среда JAX-RS REST, включенная в Java EE 6, но легко устанавливаемая в Java EE 5 или любом контейнере сервлетов, превосходна. Возможно, именно таким должен был быть Servlet 3.0. Но я не знаю книг для этого.

Для Tomcat прочитайте руководство на веб-сайте. Это очень хорошо. В частности, первые несколько глав об организации и развертывании веб-приложений, а также главы об API сервлетов и JSP.

Для Весны книга Мэннинга "Весна в действии" очень хороша. Аналогично для Hibernate (книга Мэннинга), но я думаю, что Hibernate в основном выходит за рамки веб-приложений. Ваш звонок, хотя.

Калитка - книга Мэннинга тоже. Но на самом деле, просто напишите свой код переднего плана в Javascript. Это будет менее болезненным, ИМО.

Jpassion предоставляет хорошие видео и материалы для изучения Java EE 6 и других вещей.

Вы также должны увидеть примеры приложений:

  1. Petstore. Требуется Maven, рекомендуется Glassfish. Автор Антонио Гонсалвес, который написал упомянутую книгу.
  2. JBoss Ticketmonster. Требуется Maven & Jboss Forge. Развернуть в Jboss.

Я не буду комментировать другие технологии, но если вы хотите изучить Hibernate, получите "Hibernate Made Easy" от Cameron McKenzie(www.hiberbook.com). Это стоит каждого пенни. Вы можете закончить чтение этой книги за 2 дня (буквально). это похоже на роман, и в конце вы сталкиваетесь с Hibernate как Semi-Pro.

Если вы просто хотите создавать веб-приложения на Java, посмотрите Play Framework. Это похоже на "Ruby on Rails"

Другие вопросы по тегам