Tworzenie stron internetowych Java EE, od czego zacząć i jakich umiejętności potrzebuję? [Zamknięte]


216

Chcę nauczyć się, przynajmniej na poziomie podstawowym, jak budować aplikacje Java (pochodzące z tła .NET). Chciałbym móc zbudować, wdrożyć prostą aplikację typu CMS od podstaw.

Czego dokładnie muszę się nauczyć?

Tomcat wydaje się być dobrym serwerem WWW dla Javy.

Jakie są dostępne opcje dla sieci? Wiem, że istnieje hibernacja dla ORM.

Czy Java ma MVC? Co z JSP ? Czy MVC i JSP mogą być razem? NetBeans ?

Może książka, która obejmuje je wszystkie?

Odpowiedzi:


261

(Zaktualizowano mar 2020)

Przede wszystkim „Java EE” od września 2019 r. Przemianowano na „ Jakarta EE ”, począwszy od wersji 8. Historycznie istniał również termin „J2EE”, który obejmował wersje 1.2 do 1.4. „Java EE” obejmowało wersje od 5 do 8. Zobacz także Java Platform, Enterprise Edition, History na Wikipedii .

Czego dokładnie muszę się nauczyć?

Zakładam, że znasz już technologie po stronie klienta, takie jak HTML , CSS i JS , więc nie będę się tym zajmował. Zakładam również, że znasz już podstawową Javę. Postępuj zgodnie z samouczkami Java firmy Oracle, a jeśli to możliwe, zdobądź także książkę lub kurs OCP .

Następnie możesz zacząć od JSP / Servlet, aby nauczyć się podstawowych pojęć związanych z tworzeniem stron internetowych Java. Dobre samouczki można znaleźć w samouczku Oracle EE 5 część II rozdziały 3–8 oraz na stronie Coreservlets.com (dla początkujących i średnio zaawansowanych i zaawansowanych, także JDBC ). Zwróć uwagę, że od Java EE 6 JSP jest usuwany z samouczka Java EE na rzecz JSF i od tego czasu JSP zasadniczo się nie zmienił. Dlatego w tym celu możesz bezpiecznie użyć dość starego samouczka Java EE 5. Najważniejsze w odniesieniu do JSP jest to, że od 2003 r. Oficjalnie odradza się pisanie zwykłego kodu Java w plikach JSP za pomocą <%skryptletów %>. Zobacz także Jak uniknąć kodu Java w plikach JSP? Tak więc wszelkie samouczki, które nadal obejmują skrypty, powinny zostać pominięte, ponieważ na pewno poprowadzą cię w dół spirali uczenia się złych praktyk.

Tutaj na Stack Overflow możesz także znaleźć ładne strony wiki o JSP , serwletach , JSTL i EL, gdzie możesz nauczyć się podstawowych rzeczy i znaleźć bardziej przydatne linki.


Tomcat wydaje się być dobrym serwerem WWW dla Javy.

To jest. Ma jednak ograniczone możliwości. Zasadniczo jest to pusty kontener serwletów, implementujący tylko części JSP / Servlet ogromnego API Java EE. Jeśli kiedykolwiek chcesz przejść na EJB lub JPA, wybierz inny, np. WildFly , TomEE , Payara , Liberty , WebLogic itp. W przeciwnym razie musisz użyć Spring zamiast Java EE. Nie jest możliwe zainstalowanie EJB w pustym pojemniku serwletu bez modyfikacji silnika podstawowego, tak jak w przypadku Tomcat w zasadzie wymyśla się TomEE. Zobacz także Czym dokładnie jest Java EE? , Jak poprawnie zainstalować i skonfigurować biblioteki JSF przez Maven? oraz Jak zainstalować i używać CDI na Tomcat?


Wiem, że istnieje hibernacja dla ORM.

Wcześniej, w erze J2EE, gdy JPA nie istniało, a EJB2 było okropne, Hibernate był samodzielnym frameworkiem i często używany w połączeniu z Springem w celu wyparcia EJB. Od czasu wprowadzenia JPA w Javie EE 5 (2006) Hibernate stało się implementacją JPA. Możesz nauczyć się JPA w samouczku Jakarta EE część VIII . Ponadto EJB3 został znacznie ulepszony w oparciu o wnioski wyciągnięte z wiosny. Zobacz także Kiedy jest konieczne lub wygodne używanie Spring, EJB3 lub wszystkich z nich jednocześnie?


Czy Java ma MVC? Co z JSP? Czy MVC i JSP mogą być razem? JavaBeans?

Możesz , ale to wiele nowych odkryć koła, jeśli chodzi o wiązanie modelu z widokiem (konwersja, sprawdzanie poprawności, zmiana słuchaczy itp.). Struktura MVC Java EE nosi nazwę JSF . Przed wersją Java EE 6 działała na JSP, która jest dość starszą technologią widoku. JSP został zastąpiony przez Facelets . Możesz nauczyć się JSF na samouczku Jakarta EE część III rozdziały 7 - 17 . Nawiasem mówiąc, możesz także użyć JSF na Tomcat, musisz tylko zainstalować go osobno. Instrukcje instalacji można znaleźć na stronie głównej Mojarra. WildFly, TomEE, Payara, Liberty, WebLogic itp. Jako kompletna implementacja Java EE już zapewniają JSF (i CDI, BV, JSONP, JAX-RS, EJB, JPA itp.) Od razu po wyjęciu z pudełka, więc nie musisz zainstaluj osobno. Zobacz także Jak poprawnie zainstalować i skonfigurować biblioteki JSF przez Maven?


Może książka, która obejmuje je wszystkie?

Jest kilka książek. Poleciłbym zacząć od książki skupionej ogólnie na Dżakarcie EE , książki bardziej skoncentrowanej na JSF i książki bardziej skoncentrowanej na JPA . Upewnij się, że wybierasz najnowszą książkę na ten temat. Najpierw sprawdź najnowszą dostępną wersję, a następnie upewnij się, że wybrana książka to obejmuje. Dlatego zdecydowanie nie wybieraj starej książki dla Java EE 5 lub JSF 1.0, podczas gdy jest już dostępna Jakarta EE 8 i JSF 2.3.

Wreszcie, należy zignorować witryny służące do skrobania fragmentów kodu prowadzone przez amatorów, które koncentrują się głównie na dochodach z reklam, a nie na nauczaniu, takich jak roseindia, tutorialspoint, javabeat, Journaldev, javatpoint, codejava itp. Można je łatwo rozpoznać po przeszkodach w linkach reklamowych / banery i fragmenty kodu JSP zawierające skryptlety .

Zobacz też:


Greate! przydatne, dziękuję. W .Net zazwyczaj książka Wrox Press może obejmować wszystkie wiadomości w .net. Bardzo gruba książka.
gfan

5
Czy StackOverflow nie ma funkcji Pin post? Chciałbym, żeby tak było, żebym mógł przypiąć tę odpowiedź. Dzięki!
dww

Musi istnieć alternatywa dla samouczka JavaEE 5. Wiem, że jestem noobem i jesteś w tym bardzo dobry. Ale ... Próbuję uczyć się z tego samouczka. Jest bardzo zablokowany i zależy od niektórych ustawień. Muszę więc nauczyć się NetBeans. potem muszę zrezygnować z mojego serwera i przejść do szklanych rybek, próbując znaleźć kod próbny do uruchomienia i uczyć się od nie było najłatwiejsze. Nie mogłem uruchomić na serwerze. zamiast tego spotkałem się z czymś, co nazywa się build maven. Myślałem, że spróbowałem, co zaowocowało zaćmieniem! najwyraźniej muszę też nauczyć się maven, a to, że ten drugi i diabły grandmo ...
brat

@brat: odpowiedź zawiera linki do alternatyw i książek.
BalusC

Dobrze. Tylko jeden, który obejmuje wiele. Coreserv ... Musiałem zbierać fragmenty tu i tam. Włączyłem się teraz z oficjalnym tutem JavaEE :) Aby dowiedzieć się, jaki pakiet SDK trzeba pobrać, aby uruchomić przykładowy kod, ma serwer GlassFish, który nie współpracuje z JDK 10 :(, wyjątek NullPointerException podczas uruchamiania. Znalazł hack stackoverflow.com / pytania / 47458119 /… i dlatego muszę pobrać ... i tak dalej itd. Wydaje mi się, że jestem trochę przygnębiony i wredny za to, że muszę skakać przez obręcze, by się uczyć. :(. Nie ułatwiają noobs x). Pozdrawiam :)
brat

28

Czego dokładnie muszę się nauczyć?

Minimalnie,

  • Java język
  • Java API, w tym JDBC dla dostępu do bazy danych
  • IDE lub edytor tekstu + Ant
  • Java EE, w zasadzie serwlety i JSP
  • Kontener serwletu (taki jak Tomcat)

Tomcat wydaje się być dobrym serwerem WWW dla Javy.

Jest „przyzwoity”. Jeśli nie interesuje Cię EJB, prawdopodobnie nie będziesz musiał uczyć się niczego innego. Glassfish 3 wydaje się ostatnio całkiem fajny, ale jeszcze nie grałem z nim zbyt wiele. Uwaga: jest to „więcej” niż serwer WWW. Jest to kontener serwletu (co oznacza, że ​​może uruchamiać aplikacje przy użyciu technologii serwletu).

Jakie są dostępne opcje dla sieci?

O zillion różnych ram. Naprawdę, wybór jednego jest naprawdę „trudny”. Wypróbowanie ich wszystkich jest bardzo kuszące, ale ostatecznie niewykonalne.

Wiem, że istnieje hibernacja dla ORM.

Jestem trochę przeciwny ORM, ale Hibernacja jest tym, czego potrzebujesz, jeśli potrzebujesz „pełnego” ORM. Możesz także wypróbować „częściowe” ORM, takie jak obsługa JDBC Springa i iBatis.

Czy Java ma MVC? co z JSP? czy MVC i JSP mogą być razem? fasolki?

Tak, większość frameworków Java obsługuje MVC. Spring MVC jest fajny, ale nie mogę polecić niczego innego (zwłaszcza nie Struts 1!). JSP to po prostu silnik szablonów HTML (lub XML). Oldschoolowy plik JSP z wbudowanym kodem Java nie działa; nowoczesny plik JSP z plikami znaczników i bibliotekami jest całkiem niezły.

Podejrzewam, że większość frameworków pozwoli ci używać JSP do renderowania twoich V; Wiosenne MVC i Struts. Niektóre pozwolą ci też użyć czegoś innego (Velocity, Freemarker itp.).

Fasola to tylko konwencja dla przedmiotów. Zasadniczo oznacza to, że używasz programów pobierających i ustawiających (lub niektórych alternatyw) i przestrzegasz pewnych zasad. Powinny one pozwolić twojemu obiektowi na manipulowanie przez niektóre narzędzia. Typowym przykładem jest GUI, niektóre narzędzia pozwalają budować komponenty GUI do edycji dowolnych komponentów bean (tzn. Wyświetlają formularz do edycji jego pól).


16

Potrzebujesz HTML, CSS i JavaScript - wszystkich zwykłych podejrzanych o tworzenie stron internetowych.

Tomcat ma wbudowany serwer WWW, ale jest to silnik serwletu / JSP . Apache to czysty serwer WWW.

Musisz nauczyć się JSP, który jest językiem szablonów do generowania serwletów generujących dane wyjściowe HTML. Będziesz chciał napisać je używając JSTL, a nie skryptletów.

Jeśli robisz aplikacje CRUD, musisz nauczyć się JDBC i relacyjnych baz danych. Powinieneś to zrobić przed wypróbowaniem Hibernacji lub innej ORM, ponieważ jest to fundament, na którym są zbudowane.

JavaBeans to tylko standardy dla obiektów Java.

Jeśli jesteś na to gotowy, poleciłbym Spring Framework.


mówisz, że tomcat ma wbudowany serwer WWW, co to jeszcze? myślałem, że to wszystko to serwer WWW?
mrblah

6
@mrblah - Tomcat to silnik serwletów. Został stworzony do przetwarzania klas serwletów (w które zamieniane są pliki JSP) i dostarczania danych wyjściowych do przeglądarki. Oprócz tego obsługuje również wszystkie zwykłe pliki (obrazy, html, css itp.), Podobnie jak serwer WWW. Jest porównywalny z Apache z modułem php.
Nemi

13

Czy Java ma MVC?

Java ma różne frameworki, takie jak Struts2 , Spring MVC

co z JSP?

JSP to biblioteka szablonów. Istnieje kilka alternatyw, które możesz wypróbować, takich jak FreeMarker i Velocity . AFAIK Freemarker to nowa biblioteka szablonów. Jest lekki niż JSP . Sprawdź ten FreeMarker : otwarta alternatywa dla JSP - JavaWorld

czy MVC i JSP mogą być razem?

Traktuję MVC jako wspomniany wcześniej framework. Wszystkie frameworki mają obsługę JSP, ale należy sprawdzić obsługę innych bibliotek szablonów w dokumentacji odpowiednich frameworków. AFAIK Struts2 ma bardzo dobre wsparcie dla Freemarker.

fasolki?

Niewiele o tym wiem. Ale za pomocą fasoli możemy bezpośrednio mapować dane formularzy do baz danych.

Może książka, która obejmuje je wszystkie?

Każda struktura ma swoją własną książkę. For Struts2 - Struts 2 in Action

String MVC - Spójrz na te pytania polecające książki na wiosnę i wiosnę MVC. Sugestie książkowe dla Spring Framework i Spring Books: Który wybrać

Fremarker ma bardzo dobrą dokumentację - Podręcznik FreeMarker

Aby rozpocząć tworzenie stron internetowych w Javie -

alternatywny tekst

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


5

Uważam, że większość tradycyjnych opcji programowania stron internetowych w języku Java jest dość ciężka i istnieje kilka dobrych alternatyw:

  • Play jest strukturą MVC, która koncentruje się na lekkości, prostocie i umożliwia szybki rozwój - przy jednoczesnym zachowaniu czystej Java, w przeciwieństwie do bardziej dynamicznego języka opartego na JVM. Jest dość nowy, ale już imponujący, a dobra społeczność szybko się wokół niego zbudowała.

  • Grails to framework MVC, zainspirowany Ruby on Rails, który jest napisany i używa Groovy , języka skryptowego opartego na Javie. Grails jest dojrzały, solidny i powszechnie szanowany, z silną społecznością. Groovy jest w zasadzie nadzbiorem Java, z lepszą składnią i kilkoma świetnymi funkcjami, takimi jak zamykanie, więc nauczenie się tego jest świetnym sposobem na naukę Java.

  • Jeśli potrzebujesz / chcesz zbudować strony / usługi / aplikacje RESTful , Restlet to fantastyczny framework - jestem wielkim fanem. To proste, proste, a jednocześnie elastyczne. Świetna społeczność też.

  • Ciekawą opcją jest również Google App Engine . Jest obsługiwany, co może, ale nie musi, być interesujące, ale ma dość prosty interfejs API i dobry zestaw SDK.

Jestem pewien, że są jeszcze inne, ale o tych myślach mogę myśleć bez końca.

Powodzenia i miłej zabawy!


Aha, i właśnie odkryłem Prudence innego dnia: threecrickets.com/prudence
Avi Flax

3

Jestem programistą PHP / C i znalazłem świetną możliwość wskakiwania do Javy bez uczenia się wszystkich klas i paradygmatów związanych z programowaniem w Javie. Groovy umożliwił mi szybką produktywność, jednocześnie poświęcając trochę czasu, aby dowiedzieć się więcej o java i wszystkich dostępnych narzędziach / frameworkach / bibliotekach.


3

Jeśli nie chcesz pracować z HTML, CSS, XML, JavaScript itp.

Wypróbuj platformę Vaadin , jest dobrze udokumentowana, łatwa do nauczenia i umożliwia tworzenie dobrze wyglądającego interfejsu użytkownika w prosty sposób. (po prostu napisz kod Java, oczywiście potrzebujesz serwera serwletów, Tomcat lub Jetty będą w porządku)


2

Lepiej poznaj java. Następnie naucz się serwletów i JSP, a następnie przejdź do MVC, przejdź do Struts lub Spring lub dowolnego innego środowiska obsługującego java / java.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.