Czy muszę znać serwlety i strony JSP, aby uczyć się wiosennych, hibernacyjnych lub innych struktur Java? [Zamknięte]


17

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.


3
Pamiętaj, że hibernacja to tylko warstwa abstrakcji bazy danych, nic więcej, i można jej użyć do podłączenia źródła danych do dowolnego rodzaju aplikacji Java, nie tylko aplikacji internetowej.
Ed Griebel,

1
Wiedząc o serwletach i JSP, nie zaszkodzi, spójrz na „Head First - Servlet and JSP”. Łatwy do zrozumienia, ale obejmuje również wiele.
Jaydee,

@Jaydee Obecnie kieruję Core Servlets i JSP przez Marty Hall + serwlety i JSP.
KyelJmD

Nie sądzę, aby na to pytanie udzielono właściwej odpowiedzi. 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-struts
Borat Sagdiyev

Okej, otrzymałem kilka odpowiedzi Bear Bibeault. Zobacz te dwa linki - coderanch.com/t/633527/Spring/… i coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

Odpowiedzi:


17

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ć.


czy masz jakieś linki lub samouczek, w którym mogę zacząć uczyć się wspomnianych technologii? a może dobra propozycja dla książki. Większość aplikacji, które stworzyłem, używa RDBMS, od SQL Servera po prosty MySQl.
KyelJmD

Wyczyściłem swoją odpowiedź i dodałem linki zgodnie z żądaniem. Hibernacja / JPA i różne frameworki internetowe wymagają czasu na naukę i opanowanie. Większość innych technologii już wiesz, że powinieneś być w stanie pracować za kilka godzin lub dzień. Nie znam wiosny, ale sprawdź dokumentację na ich stronie internetowej lub uzyskaj wysoko ocenianą książkę na Amazon.
GlenPeterson

Nie rozumiem, jak to odpowiada na pytanie. 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-struts
Borat Sagdiyev

@GlenPeterson, „Cały oryginalny framework Struts był pojedynczym serwletem”. znaczenie? Czy nie spowodowałoby to spowolnienia każdej rozmowy http?
Pacerier

@Pacerier Kiedyś ładowaliśmy Struts 1 do Tomcat jako serwlet. Serwlet Struts Controller wysyła różne żądania do różnych wątków w taki sam sposób, jak serwer WWW, tylko na poziomie serwletu zamiast na poziomie kontenera. Wyobrażam sobie, że narzut był minimalny. To, co wydaje się być najwolniejsze, to wywołania bazy danych. 2. najwolniejszy, budowanie HTML i zwracanie go do klienta. W tamtym czasie popularne było używanie oddzielnego serwera dla zawartości statycznej dla szybkości, więc się udało.
GlenPeterson

4

Sugeruję 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.


2

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.


Jaką książkę możesz zaproponować na Spring MVC? jaka jest różnica między zakładem Spring a Spring MVC?
KyelJmD

Spring to pakiet technologii Java, który obejmuje wiele różnych projektów. Spring MVC to platforma internetowa po stronie serwera. Dokumentacja online Spring i przykładowe aplikacje to najlepszy sposób na poznanie Spring MVC.
MebAlone

2

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.


jaki poradnik do książki lub wideo poleciłby pan uczyć się Spring MVC?
KyelJmD


1
@YuriyZubarev - Nie widzę odpowiedzi na to pytanie. 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-struts
Borat Sagdiyev

-1

wyglą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 :).


ten post jest raczej trudny do odczytania (ściana tekstu). Czy mógłbyś edytować go w lepszym kształcie?
komar
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.