Веб-розробка Java EE, з чого я починаю і які навички мені потрібні? [зачинено]


216

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

Що саме мені потрібно навчитися?

Tomcat, здається, є хорошим веб-сервером для Java.

Які існують варіанти для Інтернету? Я знаю, що існує сплячий режим для ORM.

Чи є у Java MVC? Що з JSP ? Чи можуть MVC та JSP бути разом? NetBeans ?

Можливо, книга, яка охоплює все це?

Відповіді:


261

(Оновлено березень 2020 р.)

Перш за все, "Java EE" з вересня 2019 року перейменовано на " Джакарта EE ", починаючи з версії 8. Історично існував також термін "J2EE", який охоплював версії 1.2 до 1.4. "Java EE" охоплював версії 5 до 8. Див. Також Платформа Java, видання Enterprise, історія у Вікіпедії .

Що саме мені потрібно навчитися?

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

Потім ви можете почати з JSP / Servlet, щоб вивчити основні концепції веб-розробки Java. Хороші підручники можна знайти в розділі ІІ - 8 підручника ІІ-8 підручника Oracle Java EE 5 та на Coreservlets.com (для початківців-проміжних та просунутих, також JDBC ). Зауважте, що оскільки Java EE 6, JSP видаляється з підручника Java EE на користь JSF і JSP в основному не змінювався з тих пір. Ось чому ви могли сміливо використовувати для цього досить старий підручник Java EE 5. Найголовніше, що стосується JSP - це той факт, що запис простого коду Java у файли JSP за допомогою <%скриптів %>офіційно не рекомендується використовувати з 2003 року. Див. Також Як уникнути коду Java у файлах JSP? Тому будь-які навчальні посібники, які все ще охоплюють сценарії, слід пропустити, оскільки вони неодмінно перенесуть вас у низхідну спіраль вивчення поганих практик.

Тут, на Stack Overflow, ви також можете знайти приємні сторінки вікі про JSP , Servlets , JSTL та EL, де ви можете дізнатись основи та знайти більше корисних посилань.


Tomcat, здається, є хорошим веб-сервером для Java.

Це є. Однак вона обмежена можливостями. Це, в основному, контейнер сервлетів barebones, реалізуючи лише JSP / Servlet частини величезного API Java EE. Якщо ви коли-небудь хочете піти на EJB або JPA, ви хочете вибрати інший, наприклад WildFly , TomEE , Payara , Liberty , WebLogic тощо. В іншому випадку вам доведеться використовувати Spring замість Java EE. А саме, неможливо встановити EJB в контейнер сервлетів без змін, не змінюючи основний двигун, ви б у випадку, якщо Tomcat, в основному, винаходив TomEE. Дивіться також Що саме таке Java EE? , Як правильно встановити та налаштувати бібліотеки JSF через Maven? і Як встановити та використовувати CDI на Tomcat?


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

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


Чи є у Java MVC? Що з JSP? Чи можуть MVC та JSP бути разом? JavaBeans?

Можна , але це дуже багато винаходів колеса, коли мова йде про прив'язку моделі до перегляду (перетворення, перевірка, зміна слухачів тощо). Структура MVC Java EE називається JSF . До Java EE 6 він працював на JSP, що є досить застарілою технологією перегляду. JSP замінюється Facelets . Ви можете дізнатися JSF в Jakarta EE підручник ІІІ розділ 7 - 17 . Ви можете, до речі, також використовувати JSF на Tomcat, вам потрібно лише встановити його окремо. Інструкції з установки можна знайти на домашній сторінці Mojarra. WildFly, TomEE, Payara, Liberty, WebLogic та ін. Як повноцінна реалізація Java EE вже забезпечують JSF (і CDI, BV, JSONP, JAX-RS, EJB, JPA тощо), тому вам не потрібно встановити його окремо. Див. Також Як правильно встановити та налаштувати бібліотеки JSF через Maven?


Можливо, книга, яка охоплює все це?

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

І останнє, але не менш важливо, ігноруйте сайти, що містять фрагменти коду, які підтримують аматори з основною увагою на доходах від реклами, а не на навчанні, наприклад, розендіа, навчальний посібник, javabeat, journaldev, javatpoint, codejava тощо. Їх легко впізнати, порушуючи рекламні посилання / банери та фрагменти коду JSP, що містять сценарії .

Дивитися також:


Зробіть! корисно, Дякую У .Net, як правило, книга Wrox Press може охоплювати всі знання в .net. Дуже товста книга.
gfan

5
Чи StackOverflow не має функції Pin post? Бажаю, щоб це було, тож я міг би відповісти на цю відповідь. Дякую!
квітня

МАЄ бути альтернативою навчальному посібнику JavaEE 5. Я знаю, що я ноб, і я дуже добре в цьому. Але ... Намагаюся вчитися з цього підручника. Його дуже заблоковано і залежить від певних параметрів. Отже, мені потрібно вивчити NetBeans. тоді мені потрібно відмовитись від свого сервера і пролісувати до скловолокна, намагаючись знайти зразок коду для запуску та навчання з найпростішого. Я не міг запустити на сервері. натомість мене зустріли з чимось під назвою maven build. Я подумав, що спробував, в результаті чого затемнення перейшло в нутс! Мабуть, мені також потрібно навчитися Мейвен, і це, що інший і чорти бабуся ...
брат

@brat: відповідь містить посилання на альтернативи та книги.
BalusC

Ну. Тільки той, який охоплює багато. Coreserv ... Довелося збирати фрагменти тут і там. Я вповні завершився офіційним JavaEE тут уже :) Просто для з'ясування SDK, який потрібно завантажити, для запуску прикладного коду є сервер GlassFish, який не працює з JDK 10 :(, NullPointerException при запуску. Знайшов хак stackoverflow.com / Питання / 47458119 /… і тому мені потрібно завантажити ... і так далі і т. д. Я думаю, що я просто трохи вниз і сука за те, що потрібно перестрибувати обручі, щоб навчитися. :(. Вони не полегшують noobs x). Ура :)
брат

28

Що саме мені потрібно навчитися?

Мінімально,

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

Tomcat, здається, є хорошим веб-сервером для Java.

Це "пристойно". Якщо ви не входите в EJB, напевно, вам нічого більше не потрібно буде вчитися. Glassfish 3 останнім часом здається досить крутим, але я ще не дуже з ним грав. Зауважте, це "більше", ніж веб-сервер. Це контейнер сервлетів (тобто він може запускати програми за допомогою сервлет-технології).

Які існують варіанти для Інтернету?

Близько мільйона різних рамок. Дійсно, вибрати один із них справді "складно". Дуже спокусливо спробувати їх усіх, але в кінцевому підсумку неможливо.

Я знаю, що існує сплячий режим для ОРМ.

Я дещо анти-ORM, але сплячка - це те, що вам потрібно, якщо вам потрібна "повна" ORM. Ви також можете спробувати "часткові" ORM, такі як підтримка JDBC Spring або iBatis.

У Java є MVC? що з JSP? Чи можуть MVC та JSP бути разом? квасоля?

Так, більшість веб-рамок Java роблять MVC. MVC весни приємний, але я не можу рекомендувати нічого іншого (особливо, не Struts 1!). JSP - це лише двигун шаблонів HTML (або XML). JSP Old School, із вбудованим кодом Java uncool; сучасний JSP з файлами тегів та бібліотеками досить непоганий.

Я думаю, що більшість фреймворків дозволять вам використовувати JSP для візуалізації своїх Vs; Весна MVC і Struts роблять. Деякі дозволять вам використовувати і щось інше (Velocity, Freemarker тощо).

Квасоля - це лише умова для об’єктів. В основному це означає, що ви використовуєте геттерів і сетерів (або деяких альтернатив) і дотримуєтесь деяких правил. Вони повинні дозволяти вашому об'єкту маніпулювати певними інструментами. Типовим прикладом є графічний інтерфейс, деякі інструменти дозволять вам створювати компоненти GUI для редагування довільних бобів (тобто вони нададуть форму для редагування її полів).


16

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

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

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

Якщо ви робите програми CRUD, вам потрібно буде вивчити JDBC та реляційні бази даних. Ви повинні зробити це перед тим, як спробувати Hibernate або будь-який інший ORM, оскільки це фундамент, на якому вони побудовані.

JavaBeans - це лише стандарти для об'єктів Java.

Якщо ви готові до цього, я рекомендую рамку Spring.


Ви кажете, що tomcat має вбудований веб-сервер, що ще це? я думав, що все це веб-сервер?
mrblah

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 - Погляньте на ці питання, рекомендуючи книги для весни та весни MVC. Пропозиція для весняних рамок та весняних книг: яку вибрати

Fremarker має дуже гарну документацію - Посібник по FreeMarker

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

alt текст

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


5

Я вважаю більшість традиційних варіантів веб-розробки Java досить вагомими, і є кілька хороших альтернатив:

  • Play - це структура MVC, яка орієнтована на легкість, простий та швидкий розвиток - при цьому дотримуйтесь чистої Java, на відміну від більш динамічної мови на базі JVM. Це досить нове, але вже вражаюче, і навколо нього швидко створилася хороша громада.

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

  • Якщо вам потрібно / хочете створити RESTful веб-сайти / сервіси / програми, Restlet - це фантастична основа - я великий фанат. Це просто, прямо і в той же час гнучко. Велика громада теж.

  • Цікавим варіантом є також програма Google App Engine . Він розміщений, що може зацікавити, а може не зацікавити, але він має досить простий API та хороший SDK.

Я впевнений, що є й інші, але це ті, про які я можу придумати верхній частині голови.

Хай щастить!


О, і я щойно відкрив Пруденс днями: threecrickets.com/prudence
Аві льон

3

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


3

Якщо ви не хочете працювати з html, css, xml, javascript тощо.

Спробуйте рамку Vaadin , вона добре задокументована, легко засвоєна та дозволяє зробити гарний інтерфейс користувача простим способом. (просто напишіть код Java. Звичайно, вам потрібен сервер сервлетів, Tomcat або Jetty буде добре)


2

Краще ви навчитеся java.Then ви дізнаєтесь Servlets та JSP.Then переходите на MVC, ви переходите до Struts або Spring або будь-який інший java / java Framework.


0

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

Хорошим інтернет-ресурсом є навчальний посібник Sun Java - http://java.sun.com/docs/books/tutorial/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.