Веб-разработка на Java EE, с чего мне начать и какие навыки мне нужны? [закрыто]

216

Я хочу научиться, по крайней мере, на базовом уровне, как создавать веб-приложения на Java (исходя из .NET фона). Я хотел бы иметь возможность создавать, развертывать простое приложение типа CMS с нуля.

Что именно мне нужно выучить?

Tomcat, кажется, хороший веб-сервер для Java.

Какие есть варианты для Интернета? Я знаю, что есть Hibernate для ORM.

Есть ли в Java MVC? Что насчет JSP ? Могут ли MVC и JSP быть вместе? NetBeans ?

Может быть, книга, которая охватывает все это?

mrblah
источник

Ответы:

261

(Обновлено марта 2020 г.)

Прежде всего, «Java EE» с сентября 2019 года был переименован в « Jakarta EE », начиная с версии 8. Исторически существовал также термин «J2EE», который охватывал версии 1.2 до 1.4. «Java EE» охватывал версии 5–8. См. Также Java Platform, Enterprise Edition, History in Wikipedia .

Что именно мне нужно выучить?

Я предполагаю, что вы уже знакомы с технологиями на стороне клиента, такими как HTML , CSS и JS , поэтому я не буду вдаваться в подробности. Я также предполагаю, что вы уже знакомы с базовой Java. Следуйте инструкциям Oracle по Java и, если возможно, получите книгу или курс по OCP .

Затем вы можете начать с JSP / Servlet, чтобы изучить основные концепции веб-разработки на Java. Хорошие учебные пособия можно найти в главах 3–8 учебного руководства по Java EE 5 Oracle и на Coreservlets.com ( Beginner-Intermediate и Advanced, также JDBC ). Обратите внимание, что начиная с Java EE 6, JSP удален из учебника по Java EE в пользу JSF, и с тех пор JSP практически не изменился. Вот почему вы можете смело использовать для этого довольно старый учебник по Java EE 5. Наиболее важным в отношении JSP является тот факт, что написание простого кода Java в файлах JSP с использованием <%скриптлетов %>официально не рекомендуется с 2003 года. См. Также Как избежать использования кода Java в файлах JSP? Поэтому любые уроки, которые все еще охватывают скриптлеты, следует пропустить, поскольку они определенно приведут вас в нисходящую спираль изучения плохих практик.

Здесь, в Stack Overflow, вы также можете найти хорошие вики-страницы о JSP , сервлетах , JSTL и EL, где вы можете изучить основы и найти более полезные ссылки.


Tomcat, кажется, хороший веб-сервер для Java.

Это. Однако он ограничен в возможностях. По сути, это пустой сервлет-контейнер, реализующий только части JSP / Servlet огромного Java EE API. Если вы когда-нибудь захотите использовать EJB или JPA, вам нужно выбрать другой, например WildFly , TomEE , Payara , Liberty , WebLogic и т. Д. В противном случае вам придется использовать Spring вместо Java EE. А именно, невозможно установить EJB в контейнере с сервлетами без модификации ядра ядра, в случае с Tomcat вы будете изобретать TomEE заново. Смотрите также Что такое Java EE? , Как правильно установить и настроить JSF библиотеки через Maven? и как установить и использовать CDI на Tomcat?


Я знаю, что есть Hibernate для ORM.

Ранее, в эпоху J2EE, когда JPA не существовало и EJB2 был ужасен, Hibernate был автономной платформой и часто использовался в сочетании с Spring для замены EJB. С момента появления JPA в Java EE 5 (2006) Hibernate стал реализацией JPA. Вы можете изучать JPA в учебном пособии по Джакарте EE, часть VIII . Кроме того, EJB3 был значительно улучшен на основе уроков, извлеченных из Spring. См. Также Когда необходимо или удобно использовать Spring или EJB3 или все вместе?


Есть ли в Java MVC? Что насчет JSP? Могут ли MVC и JSP быть вместе? JavaBeans?

Вы можете , но это много изобретает колесо, когда речь идет о связывании модели с представлением (преобразование, проверка, изменение слушателей и т. Д.). Среда MVC в Java EE называется JSF . До Java EE 6 он работал на JSP, который является довольно устаревшей технологией представления. JSP был заменен Facelets . Вы можете изучать JSF в учебном пособии по Джакарте, часть III, главы 7–17 . Кстати, вы также можете использовать JSF на Tomcat, вам нужно только установить его отдельно. Инструкции по установке можно найти на домашней странице Mojarra, WildFly, TomEE, Payara, Liberty, WebLogic и т. Д., Будучи полноценной реализацией Java EE, уже предоставляют JSF (и CDI, BV, JSONP, JAX-RS, EJB, JPA и т. Д.), Поэтому вам не нужно установить его отдельно. Смотрите также Как правильно установить и настроить библиотеки JSF через Maven?


Может быть, книга, которая охватывает все это?

Есть несколько книг. Я бы порекомендовал начать с книги, посвященной Джакарте в целом , книги, в большей степени посвященной JSF , и книги, в большей степени посвященной JPA . Убедитесь, что вы выбрали самую свежую книгу по этой теме. Сначала исследуйте самую последнюю доступную версию, а затем убедитесь, что выбранная книга охватывает это. Таким образом, определенно не выбирайте старую книгу для Java EE 5 или JSF 1.0 или около того, хотя в настоящее время уже доступны Jakarta EE 8 и JSF 2.3.

И последнее, но не менее важное: не обращайте внимания на сайты очистки фрагментов кода, поддерживаемые любителями, которые уделяют основное внимание доходам от рекламы, а не обучению, таким как roseindia, tutorialspoint, javabeat, journaldev, javatpoint, codejava и т. Д. Их легко узнать по нарушению рекламных ссылок / баннеры и фрагменты кода JSP, содержащие скриптлеты .

Смотрите также:

BalusC
источник
Greate! полезно, спасибо. В .Net обычно книга Wrox Press может охватывать все знания в .net. Очень толстая книга.
gfan
5
У StackOverflow нет функции публикации сообщений? Хотелось бы, чтобы это было так, чтобы я мог прикрепить этот ответ. Спасибо!
августа
Должна быть альтернатива учебнику по JavaEE 5. Я знаю, что я новичок, и я очень хорош в этом. Но ... Пытаюсь извлечь уроки из этого урока. Он очень заблокирован и зависит от определенных настроек. Итак, мне нужно изучить NetBeans. затем я должен отказаться от своего сервера и перейти к Glassfish, пытаясь найти образец кода для запуска и учиться не было самым легким. Я не мог работать на сервере. вместо этого меня встретили чем-то, что называлось maven build. Я думал, что попробовал, что привело к затмению схожу с ума! по-видимому, я должен изучить Maven, а также, что, что другой, и дьяволы бабушка ...
брат
@brat: ответ содержит ссылки на альтернативы и книги.
BalusC
Хорошо. Только один, который охватывает много. Coreserv ... Пришлось подбирать фрагменты тут и там. Теперь я полностью ознакомился с официальным языком JavaEE :) Просто для того, чтобы узнать, какой SDK нужно загрузить, для запуска примера кода есть сервер GlassFish, который не работает с JDK 10 :(, NullPointerException при запуске. Найден хак stackoverflow.com / questions / 47458119 / ... и так мне нужно скачать ... и так далее и т. д. Я думаю, я просто немного расстроен из-за необходимости прыгать через обручи, чтобы учиться. :(. Они не облегчают noobs x). Приветствия :)
отродье
28

Что именно мне нужно выучить?

Минимально,

  • Ява язык
  • Java API, включая JDBC для доступа к базе данных
  • IDE или текстовый редактор + Ant
  • Java EE, в основном, сервлеты и JSP
  • Контейнер сервлета (такой как Tomcat)

Tomcat, кажется, хороший веб-сервер для Java.

Это "прилично". Если вы не увлекаетесь EJB, вам, вероятно, не нужно будет больше ничего изучать. Glassfish 3 в последнее время выглядит довольно круто, но я пока не играл с ним. Обратите внимание, это «больше», чем веб-сервер. Это контейнер сервлетов (то есть он может запускать приложения с использованием технологии сервлетов).

Какие есть варианты для Интернета?

Около миллиарда разных рамок. Действительно, выбрать один действительно «сложно». Очень заманчиво попробовать их все, но в конечном итоге это невозможно.

Я знаю, что есть спящий режим для ORM.

Я немного против ORM, но Hibernate - это то, что вам нужно, если вам нужна "полная" ORM. Вы также можете попробовать «частичные» ORM, такие как поддержка Spring JDBC или iBatis.

У Java есть MVC? что насчет JSP? могут ли MVC и JSP быть вместе? фасоль?

Да, большинство веб-фреймворков Java поддерживают MVC. Spring MVC хорош, но я не могу рекомендовать ничего другого (особенно, не Struts 1!). JSP - это просто шаблонизатор HTML (или XML). Старая школа JSP со встроенным Java-кодом не крутая; современный JSP с файлами тегов и библиотеками довольно хорош.

Я полагаю, что большинство фреймворков позволит вам использовать JSP для рендеринга ваших V; Spring MVC и Struts делают. Некоторые позволят вам использовать что-то еще (Velocity, Freemarker и т. Д.).

Бобы - это просто соглашение для объектов. По сути, это означает, что вы используете геттеры и сеттеры (или некоторые альтернативы) и соблюдаете некоторые правила. Это должно позволить вашему объекту манипулировать определенными инструментами. Типичным примером является GUI, некоторые инструменты позволят вам создавать компоненты GUI для редактирования произвольных bean-компонентов (т.е. они будут визуализировать форму для редактирования ее полей).

Алекс
источник
16

Вам нужны HTML, CSS и JavaScript - все обычные подозрения для веб-разработки.

У Tomcat есть встроенный веб-сервер, но это движок сервлета / JSP . Apache - это чистый веб-сервер.

Вы должны изучить JSP, который является языком шаблонов для генерации сервлетов, которые генерируют вывод HTML. Вы захотите написать их, используя JSTL, а не скриптлеты.

Если вы работаете с CRUD-приложениями, вам необходимо изучить JDBC и реляционные базы данных. Вы должны сделать это, прежде чем пытаться использовать Hibernate или любой другой ORM, потому что это основа, на которой они построены.

JavaBeans - это просто стандарты для объектов Java.

Если вы готовы, я бы порекомендовал среду Spring.

duffymo
источник
Вы говорите, что у tomcat есть встроенный веб-сервер, что еще тогда? я думал, что все это веб-сервер?
Мрбла
6
@mrblah - Tomcat - движок сервлетов. Это было сделано для обработки классов сервлетов (в которые превращаются jsp) и для обслуживания вывода в браузере. Наряду с этим, он также обслуживает все обычные файлы (изображения, HTML, CSS и т. Д.), Как веб-сервер. Это сопоставимо с Apache с модулем php.
Неми
13

У Java есть MVC?

У Java есть различные структуры как Struts2 , Spring MVC

что насчет JSP?

JSP - это библиотека шаблонов. Есть несколько альтернатив, которые вы можете попробовать как FreeMarker и Velocity . AFAIK Freemarker - это хорошая библиотека шаблонов. Его легче, чем JSP . Проверьте этот FreeMarker : открытая альтернатива JSP - JavaWorld

могут ли MVC и JSP быть вместе?

Я принимаю MVC в качестве основы, упомянутой ранее. Все фреймворки поддерживают JSP, но вы должны проверить поддержку других библиотек шаблонов в соответствующей документации фреймворков. AFAIK Struts2 к имеет очень хорошую поддержку Freemarker.

фасоль?

Я не знаю много об этом. Но используя бины, мы можем напрямую отобразить данные формы в базы данных.

Может быть, книга, которая охватывает все это?

У каждого каркаса есть своя книга. Для Struts2 - Struts 2 в действии

String MVC - взгляните на эти вопросы, рекомендуя книги для Spring и Spring MVC. Книжное предложение для Spring Framework и Spring Books: какой выбрать

У Fremarker очень хорошая документация - Руководство по FreeMarker

Для начала веб-разработки на Java -

альтернативный текст

http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596

Xinus
источник
5

Я считаю, что большинство традиционных вариантов веб-разработки на Java довольно тяжелые, и есть несколько хороших альтернатив:

  • Play - это инфраструктура MVC, которая ориентирована на облегчение, простоту и ускорение разработки - при этом придерживаясь чистой Java, в отличие от более динамичного языка на основе JVM. Он довольно новый, но уже впечатляющий, и вокруг него быстро сформировалось хорошее сообщество.

  • Grails - это инфраструктура MVC, вдохновленная Ruby on Rails, которая написана и использует Groovy , язык сценариев на основе Java. Grails зрелый, крепкий и широко уважаемый, с сильным сообществом. Groovy - это, по сути, расширенный набор Java, с лучшим синтаксисом и некоторыми замечательными функциями, такими как замыкания, поэтому изучение его - отличный способ изучения Java.

  • Если вам нужно / вы хотите создавать веб-сайты / сервисы / приложения RESTful , Restlet - фантастическая структура - я большой поклонник. Это просто, просто и гибко. Отличное сообщество тоже.

  • Google App Engine также интересный вариант. Он размещен, что может представлять интерес, а может и не представлять, но у него довольно простой API и хороший SDK.

Я уверен, что есть и другие, но это те, которые я могу придумать не покладая рук.

Удачи и приятного времяпровождения!

Ави Лен
источник
О, и я только что обнаружил Пруденс на днях: threecrickets.com/prudence
Avi Flax
3

Я программирую на PHP / C, и я нашел отличную возможность перейти на Java без изучения всех классов и парадигм, присущих Java-программированию. Groovy позволил мне быстро продуктивно работать, затрачивая время, чтобы больше узнать о java и всех доступных инструментах / инфраструктурах / библиотеках.

г-н-ск
источник
3

Если вы не хотите работать с HTML, CSS, XML, JavaScript и т. Д ..

Попробуйте Vaadin Framework, он хорошо документирован, прост в освоении и позволяет легко и просто создавать красивый интерфейс. (просто напишите код Java, конечно, вам нужен сервер сервлетов, Tomcat или Jetty будут в порядке)

mokrzu
источник
2

Лучше вы изучаете java. Затем вы изучаете сервлеты и JSP. Затем, переходя на MVC, вы переходите в Struts или Spring или в любую другую инфраструктуру с поддержкой java / java.

SIVAKUMAR.J
источник
0

Поскольку вы новичок в Java, я настоятельно рекомендую вам сначала изучить базовый язык. Это поможет вам независимо от того, какую технологию вы выберете для своего веб-приложения.

Хорошим онлайн-ресурсом является Sun Java Tutorial - http://java.sun.com/docs/books/tutorial/

Турбьерн Равн Андерсен
источник