Pytałem wiele osób, od czego zacząć naukę programowania w języku Java, znam już java core (Threading, Generics, Collections, trochę doświadczenia z (JDBC)), ale nie znam stron JSP i serwletów. Swój dobry udział w rozwoju zrobiłem z kilkoma aplikacjami internetowymi wykorzystującymi PHP po stronie serwera oraz HTML, CSS, JavaScript, HTML5 po stronie klienta.
Większość osób, o które prosiłem, powiedziała mi, żebym skoczył prosto do Hibernacji, podczas gdy niektórzy powiedzieli mi, że nie muszę uczyć się serwletów i plików jsp i powinienem natychmiast przestudiować strukturę Spring. Czy to prawda? czy nie muszę uczyć się serwletów i stron JSP, aby uczyć się hibernacji lub wiosny?
Wszystkie ich odpowiedzi wprawiły mnie w zakłopotanie, a teraz zupełnie straciłem wiedzę i naukę. Wydaje mi się, że gdybym zrezygnował z nauki JSP i serwletów, przeoczyłbym wiele ważnych koncepcji, które z pewnością pomogą mi w przyszłości.
Więc pytanie: czy muszę mieć fundamenty / znać serwlety i JSP, aby uczyć się wiosną, hibernacji lub innych ram Java.
źródło
Bear Bibeault
, znany programista i autorzy nalegają, aby nauczyć się JSP i serwletów przed nauczeniem się DOWOLNEGO frameworka. Czy ktoś chce pokazać, dlaczego może to mieć zastosowanie dzisiaj? Oto jego post - coderanch.com/t/521300/JSP/java/JSP-servlets-strutsBear Bibeault
. Zobacz te dwa linki - coderanch.com/t/633527/Spring/… i coderanch.com/t/633526/JSP/java/…Odpowiedzi:
Jeśli dobrze znasz HTML, CSS i JavaScript, masz dużą wiedzę na temat wielu osób, które kończą tworzenie stron internetowych. Koncepcje JSP są bardzo podobne do PHP. Dziwactwa są różne. Aplet to nazwa fragmentu kodu Java obsługującego żądanie. To jest naprawdę. Cały oryginalny framework Struts był pojedynczym serwletem.
Dodałbym Tomcat lub Jetty do twojej listy technologii do nauki. Tomcat jest oryginalną implementacją Java Servlet Container i jest również w pełni funkcjonalnym i dość popularnym serwerem WWW. GlassFish jest na nim zbudowany. Używam Jetty zamiast Tomcat w moich nowych projektach, ponieważ jest to prostsze, bardziej elastyczne i szybsze. Jetty został zaprojektowany do tworzenia usług internetowych w przeciwieństwie do aplikacji internetowych. Ale aplikacja internetowa to tylko usługa internetowa, która obsługuje HTML w odpowiedzi na surowe żądania HTTP, więc jeśli rozumiesz HTTP (którego możesz nauczyć się ważnych części w ciągu kilku godzin dziennie), bardzo łatwo z nim pracować.
Możesz zrobić małą stronę internetową za pomocą Tomcat i JSP ( samouczek tutaj lub JSF) wiedząc, co wiesz i spędzając kilka godzin na ćwiczeniach. W ten sposób możesz zacząć od wygodnej pozycji przed rozciąganiem. Następnie utwórz javax.servlet.http.HttpServlet, który napisze „<html> <head> <title> Hi </title> </head> <body> <h1> Hello World </h1> </body> </ html > ”do obiektu odpowiedzi, umieść go w pliku web.xml Tomcat i wyślij żądanie HTTP z przeglądarki internetowej. To nie czarna magia. Wszystkie frameworki Java są odmianami tych dwóch podstawowych działań.
Jeśli pójdziesz drogą Jetty, jest ona jeszcze mniej uporządkowana. Sprawdź przykład Hello Jetty .
Jeśli masz zamiar zrobić blog lub standardową stronę e-commerce, zacznę od SquareSpace lub Wordpress lub czegoś takiego. Dostajesz tyle z półki, że nie ma już uzasadnienia niestandardowego kodowania.
Siłą języka Java dla aplikacji internetowych jest jego niezawodność, łatwość konserwacji i wydajność. PHP lub Ruby / Rails są prostsze, ale Java będzie skalować tyle, ile chcesz. Żadne frameworki Java nie dają się zaskoczyć. Jeśli masz zespół ludzi pracujących nad dużą aplikacją internetową lub musisz użyć Hibernacji, wtedy środowisko takie jak Spring naprawdę świeci. Wiosna jest najpopularniejsza. Jeśli znasz trochę serwletów i JSP / JSF, dowiedz się, jak Spring wiąże je z modelem danych.
Jeśli tworzysz blog lub system zarządzania treścią, być może uda Ci się uciec z bazą danych NoSQL. Twierdziłbym jednak, że bazy danych NoSQL są w zasadzie tylko warstwą buforującą w systemie plików, a nie zastępują relacyjne bazy danych. Myślę, że rzadko zdarza się, aby projekt dobrze pasujący do bazy danych NoSQL był odpowiedni do opracowania w Javie.
Rzeczy, które nadal wymagają niestandardowego, wysokowydajnego kodu (w Javie, PHP, cokolwiek), prawdopodobnie będą miały zasilającą je relacyjną / SQL bazę danych. Polecam najpierw zapoznać się z podstawową znajomością SQL i JDBC (Java Database Connectivity). Po zaznajomieniu się ze światem obiektów Java oraz światem relacyjnych baz danych i SQL, możesz nauczyć się Ebean / JPA (Java Persistence API) / ORM (Object to Relational Mapping), który łączy świat obiektów ze światem relacyjnym.
ORM są trudne i dziwne. Większość jest ostatecznie warta walki. Ebean jest najprostszy, jaki znam. Czuję się bardziej komfortowo po 8 miesiącach niż w Hibernacji po 12 latach. Znam wielu ludzi, którzy używają Spring z Hibernacją i nie wydają się mieć żadnych problemów, a nawet nie są szczególnie świadomi tego, czym jest Hibernacja lub co robi, więc powiedziałbym, że jeśli zamierzasz użyć Hibernacji, zrób to przez wiosnę. Być może właśnie dlatego, że pracowałem z tym dłużej, udało mi się całkowicie wyeliminować Hibernację z kilkoma mapami skrótu do testowania, co jest niesamowite (przegląd dostępny na żądanie).
Masz już najważniejsze umiejętności. Weź innych po kolei i staraj się nie dać się przytłoczyć.
źródło
Bear Bibeault
, znany programista i autorzy nalegają, aby nauczyć się JSP i serwletów przed nauczeniem się DOWOLNEGO frameworka. Chcesz pokazać, dlaczego to może, ale nie musi mieć zastosowanie dzisiaj? Oto jego post - coderanch.com/t/521300/JSP/java/JSP-servlets-strutsSugeruję zapoznanie się z podstawowymi stronami JSP i serwletami, ponieważ pomogą one zrozumieć pojęcia uproszczone na wiosnę. Ponieważ masz doświadczenie z CGI opartymi na PHP, większość JSP / Servletów będzie po prostu na różne sposoby robić rzeczy, które znasz, więc powinno to pójść dość szybko. Najtrudniejszą rzeczą, jaką możesz znaleźć, będzie zbieranie unikalnych idiomów w świecie Java.
Jeśli chodzi o Hibernację, zgodzę się z MebAlone i powiem, jeśli chcesz, naucz się tego, ale jeśli jest już skonfigurowany, możesz zrobić 90% tego, czego potrzebujesz, po prostu przekreślając to, co zrobili inni.
źródło
Wygląda na to, że chcesz nauczyć się programowania stron WWW po stronie java. Istnieje wiele ram. Spring MVC jest w rzeczywistości najbardziej popularny, jest dojrzały, ma w pełni funkcjonalny i dobre ramy do poznania. Spring MVC i inne frameworki Java opracowują API serwletu Java od programisty - więc technicznie nie musisz tego znać. Ale proponuję nauczyć się podstaw - szczególnie kluczowych klas. Dzień nauki powinien cię tam zabrać.
Jeśli chodzi o JSP, jeśli znasz PHP, już rozumiesz podstawy. JSP jest wersją skryptów po stronie serwera w języku Java.
Hibernacja to implementacja (najpopularniejsza) JPA, która jest specyfikacją Java do utrwalania obiektów w RDBMS. Wraz z eksplozją popularności baz danych NOSQL (Hadoop, Mongo itp.), Hibernacja jest znacznie mniej „obowiązkowa” niż jeszcze 18 miesięcy temu. Osobiście uczę się technologii przechowywania danych na zasadzie „trzeba wiedzieć”, ponieważ jest ich wiele, a ty tracisz to, czego nie używasz.
źródło
Krótka odpowiedź: nie, nie musisz uczyć się serwletów i stron JSP jako warunku wstępnego dla Spring MVC i wielu innych środowisk Java.
Najpierw usuńmy Hibernację z obrazu. Jest to struktura warstwy trwałej i nie ma nic wspólnego z serwletami i stronami JSP.
Interfejs API serwletów jest najniższym poziomem dla prawie wszystkich platform Java. Nawet strony JSP są kompilowane do serwletów.
Spring MVC to warstwa na Servlet API z wieloma przydatnymi rozszerzeniami i integracją z Spring Core. Możesz użyć stron JSP jako mechanizmu renderowania dla Spring MVC. Wiosenny samouczek MVC zabierze Cię od podstaw do tworzenia aplikacji internetowych. Idąc dalej, dowiesz się o plikach JSP i będziesz dobrze przygotowany do zrozumienia interfejsu API serwletów.
źródło
Bear Bibeault
, znany programista i autorzy nalegają, aby nauczyć się JSP i serwletów przed nauczeniem się DOWOLNEGO frameworka. Chcesz pokazać, dlaczego to może, ale nie musi mieć zastosowanie dzisiaj? Oto jego post - coderanch.com/t/521300/JSP/java/JSP-servlets-strutswygląda na to, że utknąłeś w sprawie, z którą ostatnio się spotkałem. Moim celem było nauczenie się programowania po stronie serwera w Javie. Zacząłem więc od serwletów, zrozumiałem ich działanie i napisałem kilka prostych programów do uruchomienia na serwerze TomCat. TomCat jest warunkiem koniecznym. Zdecydowanie powinieneś znać TomCat, jeśli chcesz kontynuować. Jeśli chodzi o struts2 lub Spring, struts2 i spring są szkieletami zbudowanymi na serwletach, co sprawia, że dogłębne zrozumienie serwletów jest niezbędne, jeśli chcesz być silny w podstawach. Zacząłem od samouczków Java Brains. Dla początkujących te samouczki są niesamowite. Niektóre prace Jakoba Jenkova na jego blogu też są naprawdę niesamowite. Struts2 i Spring stają się prostsze, gdy znasz serwlety. Jeśli chodzi o hibernację, proponuję zacząć od znajomości JDBC. Przejdź krok po kroku, serwlety, rozpórki, JDBC, Spring, Hibernacja. Mam nadzieję, że moja odpowiedź pomoże :).
źródło