• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java web - przegląd technologii

VPS Starter Arubacloud
0 głosów
724 wizyt
pytanie zadane 23 października 2019 w Java przez robert9620 Stary wyjadacz (11,620 p.)
Cześć,

jako prace dyplomową robię aplikacje webową. Do frontu chcę użyć html, css, js (jQuery). Natomiast do backendu Javę. Tutaj pojawia się dylemat ponieważ nie do końca rozumiem jak to połączyć. Wcześniej używałem od strony backendu PHP i moje myślenie jest troche bardziej PHPowe dlatego nie rozumiem jak to można połączyć w JAVIE.

Html+css+js daje mi statyczny content, który chciałbym zdynamizować poprzez użycie javy i dostęp do bazy danych. I tu nasuwają mi się następujące pytania:

1. czy, żeby wyodrębnić powtarzające się elementy strony takie jak np. header, footer czy navigacje i potem je tylko wczytywać w pliku .html musiałbym użyć frameworka typu angular czy react, czy da się to zrobić prościej (w PHP było to banalnie proste, używałem też wordpress'a gdzie było to już wogóle robione za pomocą jednej funkcji). Chodzi o to, że jeżeli wprowadze zmiany w kodzie html np. headera to żebym nie musiał ręcznie edytować wszystkich plików .html.

2. Jak połączyć dane wrzucane przez użytkownika np. w formularzu z kodem javy i jak odpowiedź z bazy danych przekazać do widoku. Tzn. to co wydaje mi się najbardziej zbliżone do PHP to współpraca Servletów oraz JSP. Za pomocą servletu biore dane z formularza, łączę się z bazą danych, uzyskuje odpowiedź i wyświetlam ją  użytkownikowi za pomocą jsp. Jednak z tego co wiem jest to technologia przestarzała, która ma wady (miesza warstwe frontu z back-endem). Czego powinienem użyć?

Bardzo proszę o takie przybliżenie technologii, których się teraz używa i wytłumaczenie jak to działa. Może być też link do strony, gdzie jest to tłumaczone. Sam już googlowałem i szukałem, ale na forach to każdy tylko pisze jakie jsp jest złe i nie pisze jak powinno to wyglądać, a artykułów fajnie tłumaczących i sprawdzających technologie (tak jak np. Pan Mirosław w filmie pt. "Technologie tworzenia witryn. Technik informatyk. Egzamin EE.09 / E.14") nie znalazłem. Wyczytałem też, że można to robić restem, ale zastanawiam się czy wtedy niezbędny jest angular albo react. Ogólnie nie mam tak dużo czasu, żeby ryzykować i uczyć się frameworka teraz, gdy mam ograniczony czas na zrobienie aplikacji.

Upraszczając pytanie. Jeżeli chcę zrobić przeglądarkową aplikację, która od backendu działa w Javie to co powinienem użyć?

Proszę o różne alternatywy (Przegląd technologii), a nie odpowiedzi w stylu "ja używam PHP albo JSP". Porównanie różnych możliwości, krótki ich opis lub linki.
komentarz 23 października 2019 przez reaktywny Nałogowiec (40,650 p.)
edycja 23 października 2019 przez reaktywny

Pamiętaj, że Spring jest najpopularniejszy, ale jest kilkanaście innych frameworków Javy, jak Play, Spark, Vaadin, itd. Są też nowości ( https://www.spincast.org http://www.ninjaframework.org    https://jooby.io/ ). One są mniejsze i łatwiejsze do nauczenia.

2 odpowiedzi

+1 głos
odpowiedź 23 października 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

1. Generalnie kiedyś były w modzie strony z kilkoma podstronami dlatego używało się php do wrzucania powtarzających się elementów w rożnych podstronach. Dziś są w modzie aplikacje SPA (Single Page Application) i w tego typu rozwiązaniach świetnie sprawdzają się frameworki takie jak Angular, React lub Vue. Sam używam Angulara więc mogę wypowiedz swoją uzupełnić o doświadczenia z tym narzędziem. W nim chodzi o to że składasz całą stronę z komponentów. W twoim przykładzie menu może być takim komponentem. Wtedy ten komponent wykorzystujesz dokładnie w tym momencie, w którym chcesz. 

2. Jeśli będziesz do tego używał czystego JS to prawdopodobnie możesz do tego wykorzystać XMLHttpRequest, jeśli skorzystasz z angulara będziesz się bawić httpClient. Natomiast nie polecam już korzystania z JSP. 

 

Sam obecnie tworze podobne aplikacje i zdecydowanie jeśli chcesz się bawić Java polecam zapoznanie z frameworkiem Spring (lub Spring Bootem). W Springu tworzysz sobie cały backend aplikacji na którym wystawiasz endpointy oraz łączysz się z bazą danych. Kolejno postaw sobie aplikację frone-endową np w Angularze i tam twórz swój widok a potem odpytuj backend i przesyłaj tam dane. Jeśli natomiast masz mało czasu na nauke frameworka to może zainteresuj się thymeleaf. Jest dość prosty - lepszy niż JSP, ale chyba nie za wiele osób go używa w komercyjnych projektach.   

komentarz 24 października 2019 przez Comandeer Guru (599,730 p.)

@pawi125, a ile osób potrzebuje specjalistycznej aplikacji webowej, a ile strony firmowej z newsami? Nie na darmo na WP stoi 34% całej SIeci.

komentarz 24 października 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Zgadam się ale jeśli ktoś ma ambicje aby tą wiedzę wykorzystać później w zawodzie to raczej ciężko znaleźć pracę jako wp developer w przeciwieństwie do np Angular/React developera.

 

Nie kwestionuje pozycji WP w internecie ale wypowiadam się na temat zapotrzebowania na programistów w tej technologii.
1
komentarz 24 października 2019 przez JakSky Stary wyjadacz (14,770 p.)
Właśnie nie do końca. Skoro WP jest bardziej popularny to znaczy, że szybciej też znajdziesz potencjalnych klientów. Zobacz sobie jak wygląda rynek pracy w mniejszych miastach. Np Gorzów Wlkp, Opole czy Olsztyn. Ile jest tam firm robiących aplikacje SPA a ile monolity na WP. Może a nawet trzeba się uczyć nowych technologii, ale rynku nie oszukasz. W dodatku koszt zrobienia aplikacji SPA jest znacznie większy, a większość małych firm po prostu na to nie stać.
komentarz 24 października 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Mieszkam i pracuje w Opolu,
znam kilka firm i nie wiem ile zajmuje się WP. Natomiast znam firmy które w Opolu robią coś w Angularze, Vue, Reactie. Wiem tez ze w Opolu zajmują się SapUI5 oraz np Wicketem :)
1
komentarz 24 października 2019 przez Comandeer Guru (599,730 p.)

A ja mieszkam w Krakowie i przez okno widzę Nokię, Motorolę, Ericssona – wszyscy pewnie trzaskają aplikacje klasy enterprise. Tylko że to Ruczaj, obrzeża Krakowa. A w centrum można znaleźć ogłoszenia "zrobię tanio strony internetowe" – i to na słupach.

+1 głos
odpowiedź 23 października 2019 przez Ehlert Ekspert (212,630 p.)

Porównanie różnych możliwości, krótki ich opis lub linki

To nie koncert życzeń. Możemy podać Ci nazwy rozwiązań oraz subiektywne uwagi w stylu warto lub nie warto używać. Reszta to kwestia Google'a i Twojego czasu.

Do rzeczy. Mam wrażenie że postrzegasz web poprzez generowanie stron przez backend. To wciąż używane aczkolwiek postępowo porzucane rozwiązanie w nowszych projektach.

  1. W momencie kiedy od przeglądarki leci request to be ogarnia o co chodzi zbiera dane i renderuje stronę. Takie podejście znasz z php. W Javie też można je stosować, potrzebujesz tylko jakiś template engine. Nie polecę żadnego, do poszukania. Co do ogólnego frameworka backendowego Javy to Spring teraz jest na topie.
  2. Drugie podejście to SPA. Czyli rozdzielasz front od backendu. Tutaj HTML, CSS i jquery to trochę mało. Zazwyczaj Angular, Vue lub React. Dane są odczytywane przez asynchroniczne requesty z przeglądarki do serwera. Serwer ogarnia co trzeba zrobić i odpowiada http kodem oraz najczęściej jsonem. Wtedy aplikacja backendowa to tzw api, najczęściej w standardzie Rest. Po stronie frontu technologie które wymieniłem plus fetch api/axios itp do komunikacji. Backend wszystko czyli Symfony / Spring, czego dusza zapragnie.
  3. Trzeci motyw to z grubsza połączenie tych dwóch koncepcji czyli SSR. Tutaj technologie z tego co wiem mocno zawężone. Czyli np react na froncie oraz Backend w node js i do tego odpowiednie paczki do generowania reacta.

Jeśli zależy Ci na czasie to Spring w Javie + Hibernate i do tego vue powinny starczyć aby stworzyć prostą apkę CRUD.

komentarz 23 października 2019 przez robert9620 Stary wyjadacz (11,620 p.)
Dziękuję bardzo za odpowiedź.

Docelowo rzeczywiście Interesuje mnie opcja 2. Jednak przez ograniczenia w tym momencie skłaniam się ku opcji 1. Jednak właśnie clue mojego pytania jest jakimi technologiami go zrealizować. Bardzo prosiłbym o rozwinięcie odpowiedzi Ciebie lub innego czytającego ;) mówiąc o template engine masz na myśli front czy backend? Czy spring po stronie backendu załatwić sprawę? Jak wygląda tam proces generowania treści?
1
komentarz 23 października 2019 przez Ehlert Ekspert (212,630 p.)

Nie robiłem tego nigdy ale jak najbardziej. Template engine - miałem na myśli pakiet po stronie backendu który łączy szablony stron i komponentów HTML i zapełnia je danymi. Po tym framework wysyła wszystko na front w postaci gotowej strony.

Tutaj masz kilka propozycji. https://github.com/akullpp/awesome-java/blob/master/README.md#template-engine Nie korzystałem, więc nic Ci nie polecę, googluj, szukaj opinii wink

komentarz 23 października 2019 przez reaktywny Nałogowiec (40,650 p.)

Z wymienionych chyba tylko Thymeleaf  zdobył popularność.

Podobne pytania

0 głosów
1 odpowiedź 570 wizyt
pytanie zadane 8 lipca 2020 w Java przez Szyszka Gaduła (3,490 p.)
0 głosów
0 odpowiedzi 155 wizyt
pytanie zadane 29 kwietnia 2018 w Java przez Mateusz Gęborski Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 118 wizyt
pytanie zadane 24 lipca 2017 w Java przez Mateusz Nowicjusz (220 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...