Mam parę pytań. To są :
- W jaki sposób JSP i Servlet są ze sobą powiązane?
- Czy JSP jest jakimś serwletem?
- Jak JSP i JSF są ze sobą powiązane?
- Czy JSF jest jakimś JSP opartym na interfejsie użytkownika przed kompilacją, takim jak ASP.NET-MVC?
Mam parę pytań. To są :
Odpowiedzi:
JSP to technologia widoku Java działająca na serwerze, która umożliwia pisanie tekstu szablonów w językach po stronie klienta (takich jak HTML, CSS, JavaScript itp.). JSP obsługuje taglibs , które są wspierane przez fragmenty kodu Java, które pozwalają dynamicznie kontrolować przepływ strony lub dane wyjściowe. Dobrze znanym taglibem jest JSTL . JSP obsługuje także język wyrażeń , który może być używany do uzyskiwania dostępu do danych zaplecza (poprzez atrybuty dostępne na stronie, w żądaniach, zakresach sesji i aplikacjach), głównie w połączeniu z taglibs.
Gdy JSP jest wymagane po raz pierwszy lub podczas uruchamiania aplikacji internetowej, kontener serwletu skompiluje go do klasy rozszerzającej HttpServlet
i będzie go używać przez cały okres istnienia aplikacji internetowej. Wygenerowany kod źródłowy można znaleźć w katalogu roboczym serwera. Na przykład w Tomcat jest to /work
katalog. Na żądanie JSP kontener serwletu wykona skompilowaną klasę JSP i wyśle wygenerowane dane wyjściowe (zwykle tylko HTML / CSS / JS) przez serwer sieciowy przez sieć do strony klienta, co z kolei wyświetli je w przeglądarce internetowej.
Servlet to interfejs programowania aplikacji Java (API) działający na maszynie serwerowej, który przechwytuje żądania złożone przez klienta i generuje / wysyła odpowiedź. Dobrze znanym przykładem jest HttpServlet
metoda, która zapewnia metody przechwytywania żądań HTTP przy użyciu popularnych metod HTTP, takich jak GET
i POST
. Możesz skonfigurować HttpServlet
s, aby nasłuchiwał określonego wzorca adresu URL HTTP, który można konfigurować w Java EE 6web.xml
lub od niedawna , z adnotacjami.@WebServlet
Gdy serwlet zostanie po raz pierwszy zamówiony lub podczas uruchamiania aplikacji sieci web, kontener serwletu utworzy jego instancję i zachowa ją w pamięci przez cały okres istnienia aplikacji internetowej. Ta sama instancja zostanie ponownie użyta dla każdego przychodzącego żądania, którego adres URL pasuje do wzorca adresu URL serwletu. Możesz uzyskać dostęp do danych żądania HttpServletRequest
i obsłużyć odpowiedź przez HttpServletResponse
. Oba obiekty są dostępne jako argumenty metod w dowolnej z przesłanianych metod HttpServlet
, takich jak doGet()
i doPost()
.
JSF jest opartym na komponentach frameworkiem MVC, który jest zbudowany na interfejsie API serwletów i zapewnia komponenty za pośrednictwem taglibs, które mogą być używane w JSP lub dowolnej innej technologii widoku opartej na Javie, takiej jak Facelets . Facelets jest znacznie bardziej odpowiedni dla JSF niż JSP. Zapewnia to doskonałe możliwości szablonowania, takie jak komponenty kompozytowe , podczas gdy JSP w zasadzie oferuje tylko <jsp:include>
szablonowanie w JSF, dzięki czemu jesteś zmuszony tworzyć niestandardowe komponenty z surowym kodem Java (który jest nieco nieprzejrzysty i dużo żmudnej pracy), gdy chcesz zastąpić powtarzającą się grupę komponentów jednym komponentem. Od JSF 2.0 JSP jest przestarzałe jako technologia wyświetlania na korzyść Facelets.
Uwaga : Sam JSP NIE jest przestarzały, tylko kombinacja JSF z JSP jest przestarzała.
Uwaga : JSP ma świetne możliwości tworzenia szablonów za pomocą Taglibs, szczególnie w wariancie ( Tag File ). Brakuje szablonów JSP w połączeniu z JSF.
Będąc strukturą MVC ( Model-View-Controller ), JSF stanowi FacesServlet
jedyny kontroler żądanie-odpowiedź . Wymaga od Ciebie wszystkich standardowych i żmudnych prac związanych z żądaniami / odpowiedziami HTTP, takich jak zbieranie danych wejściowych użytkownika, sprawdzanie poprawności / konwersja, umieszczanie ich w obiektach modelu, wywoływanie akcji i renderowanie odpowiedzi. W ten sposób otrzymujesz stronę JSP lub Facelets (XHTML) dla View i klasę JavaBean jako Model . Komponenty JSF są wykorzystywane do wiązania się widokiem z modelu (takie jak kontrola web ASP.NET robi) i FacesServlet
wykorzystuje drzewo składnik JSF , aby wykonać całą pracę.
<c:forEach>
znacznik pochodzi z JSTL. Zobacz także stackoverflow.com/tags/jstl/info
<mytag:doesSomething/>
wygląda jak tag niestandardowy i <jsp:attribute>
tag jsp.
Zobacz http://www.oracle.com/technetwork/java/faq-137059.html
Technologia JSP jest częścią rodziny technologii Java. Strony JSP są kompilowane w serwlety i mogą wywoływać komponenty JavaBeans (komponenty) lub komponenty Enterprise JavaBeans (komponenty komponentu Enterprise) w celu wykonania przetwarzania na serwerze. Jako taka, technologia JSP jest kluczowym składnikiem wysoce skalowalnej architektury dla aplikacji internetowych.
Zobacz https://jcp.org/en/introduction/faq
Odp .: Technologia JavaServer Faces to platforma do tworzenia interfejsów użytkownika dla aplikacji internetowych. Technologia JavaServer Faces obejmuje:
Zestaw interfejsów API do: reprezentowania komponentów interfejsu użytkownika i zarządzania ich stanem, obsługi zdarzeń i sprawdzania poprawności danych wejściowych, definiowania nawigacji strony oraz wspierania internacjonalizacji i dostępności.
Niestandardowa biblioteka znaczników JavaServer Pages (JSP) do wyrażania interfejsu JavaServer Faces na stronie JSP.
JSP to wyspecjalizowany rodzaj serwletu.
JSF to zestaw tagów, których można używać z JSP.
Z perspektywy przeglądarki / klienta
Zarówno JSP, jak i JSF wyglądają tak samo, zgodnie z wymaganiami aplikacji, JSP jest bardziej odpowiedni dla aplikacji opartych na żądaniach i odpowiedziach.
JSF jest przeznaczony dla bogatszych aplikacji internetowych opartych na zdarzeniach. Widzę zdarzenie o wiele bardziej szczegółowe niż żądanie / odpowiedź.
Z perspektywy serwera
Strona JSP jest konwertowana na serwlet i ma tylko minimalne działanie.
Strona JSF jest konwertowana na drzewo komponentów (przez wyspecjalizowane FacesServlet) i podąża za cyklem życia komponentów określonym przez spec.
Serwlety:
Java Servlet API umożliwia programistom Java pisanie kodu po stronie serwera w celu dostarczania dynamicznej zawartości WWW. Podobnie jak inne zastrzeżone interfejsy API serwera WWW, Java Servlet API oferuje lepszą wydajność w porównaniu z CGI; ma jednak kilka kluczowych dodatkowych zalet. Ponieważ serwlety zostały zakodowane w Javie, zapewniają podejście projektowe zorientowane obiektowo (OO) i, co ważniejsze, mogą działać na dowolnej platformie. W ten sposób ten sam kod był przenośny dla dowolnego hosta obsługującego Javę. Serwlety znacznie przyczyniły się do popularności Java, ponieważ stała się szeroko stosowaną technologią do tworzenia aplikacji sieciowych po stronie serwera.
JSP:
JSP jest oparty na serwletach i zapewnia prostsze, oparte na stronach rozwiązanie do generowania dużych ilości dynamicznej treści HTML dla interfejsów użytkownika WWW. JavaServer Pages umożliwia programistom i projektantom stron internetowych edycję stron HTML za pomocą specjalnych znaczników dla dynamicznych części Java. JavaServer Pages działa poprzez posiadanie specjalnego serwletu znanego jako kontener JSP, który jest zainstalowany na serwerze WWW i obsługuje wszystkie żądania wyświetlenia strony JSP. Kontener JSP tłumaczy żądany JSP na kod serwletu, który jest następnie kompilowany i natychmiast wykonywany. Kolejne żądania do tej samej strony wywołują po prostu serwlet środowiska wykonawczego dla tej strony. Jeśli zmiana zostanie wprowadzona do strony JSP na serwerze, żądanie jej wyświetlenia wyzwala inne tłumaczenie, kompilację i ponowne uruchomienie serwletu wykonawczego.
JSF:
JavaServer Faces to standardowa platforma Java do budowania interfejsów użytkownika dla aplikacji internetowych. Co najważniejsze, upraszcza tworzenie interfejsu użytkownika, który często jest jedną z trudniejszych i żmudniejszych części tworzenia aplikacji internetowych.
Chociaż możliwe jest budowanie interfejsów użytkownika przy użyciu podstawowych technologii Java Web (takich jak serwlety Java i strony JavaServer) bez kompleksowej struktury przeznaczonej do tworzenia aplikacji internetowych dla przedsiębiorstw, te podstawowe technologie mogą często prowadzić do problemów związanych z programowaniem i utrzymaniem. Co ważniejsze, zanim programiści osiągną rozwiązanie o jakości produkcyjnej, ten sam zestaw problemów rozwiązanych przez JSF zostanie rozwiązany w niestandardowy sposób. JavaServer Faces został zaprojektowany w taki sposób, aby uprościć tworzenie interfejsów użytkownika dla aplikacji Java Web na następujące sposoby:
• Zapewnia zorientowane na komponenty, niezależne od klienta podejście programistyczne do budowania interfejsów użytkownika, zwiększając w ten sposób produktywność programistów i łatwość użytkowania.
• Upraszcza dostęp do danych aplikacji i zarządzanie nimi z internetowego interfejsu użytkownika.
• Automatycznie zarządza stanem interfejsu użytkownika między wieloma żądaniami i wieloma klientami w prosty i dyskretny sposób.
• Dostarcza platformę programistyczną przyjazną dla zróżnicowanej grupy programistów o różnych zestawach umiejętności.
• Opisuje standardowy zestaw wzorów architektonicznych dla aplikacji internetowej.
[ Źródło: Pełne odniesienie: JSF ]
Są też sytuacje, w których możesz faworyzować JSP nad JSF. Charakter aplikacji powinien decydować o wyborze technologii.
Jeśli masz bogatą interakcję z GUI i potrzebujesz dużo skryptów Java, wybierz JSF. Zasadniczo, jeśli architektura aplikacji GUI jest zorientowana na komponenty, a nawet napędzana jak Swing, JSF jest najlepsza.
Jeśli aplikacja jest tylko prostym formularzem, nie wymaga wiele interakcji z GUI, JSP może się przydać, jeśli nauka nowej technologii jest narzutem, a złożona struktura jest zbędna.
Servlet - to warstwa po stronie serwera Java.
Podstawowa różnica między serwletami a JSP polega na tym, że w serwletach piszemy kod java, w tym, że osadzamy kod HTML, aw przypadku JSP jest tylko odwrotna wielkość liter. W JSP piszemy kod HTML, w którym osadzamy kod Java za pomocą tagów dostarczonych przez JSP.
Java Server Pages (JSP) to technologia Java, która umożliwia deweloperom i projektantom sieci Web szybkie tworzenie i łatwą obsługę bogatych w informacje, dynamicznych stron internetowych, które wykorzystują istniejące systemy biznesowe. Technologia JSP oddziela interfejs użytkownika od generowania treści, umożliwiając projektantom zmianę ogólnego układu strony bez zmiany podstawowej zawartości dynamicznej.
Facelets to pierwszy język deklaracji stron inny niż JSP zaprojektowany dla JSF (Java Server Faces), który zapewnia prostszy i bardziej wydajny model programowania dla programistów JSF w porównaniu do JSP. Rozwiązuje różne problemy występujące w JSP podczas tworzenia aplikacji internetowych.
Oto tabela, która porównuje cechy skrobaków i fasetek:
JSP:means HTML+Java Code:
JSP ma własny cykl życia jsp_init () jsp_service () jsp_destroy
Po pierwszym żądaniu JSP przekonwertować na plik .java. Istnieją trzy typy tagów, których używamy
1.) Bez skryptów
<% %>
Tutaj programista może zadeklarować wszystkie rzeczy, które programista chce pobrać dane
2.) Tag wyrażenia
<%= %>
Tutaj programista może użyć niektórych danych związanych z drukowaniem
3.) Deklaracja
<!% %>
Tutaj programista może zadeklarować niektóre dane związane z metodą.
Servlet:
Serwlet ma własny cykl życia.
init()
service()
destroy()
Po pierwszym żądaniu kontener odczyta dane z pliku web.xml, a po zakończeniu wyświetli się powitanie.
Teraz po wykonaniu akcji przeszuka adres URL, a po tym procesie przeszuka tam konkretny serwlet. operacja usługi zostanie wykonana.
JSF:
JSF ma własny interfejs użytkownika, a jego cykl życia może działać na sześć sposobów,
A)Restore view phase
B)Apply request values phase
C)Process validations phase
D)Update model values phase
E)Invoke application phase
F)Render response phase
W przypadku interfejsu użytkownika tutaj w tabeli tutaj używamy siatki panelu i są do tego różne twarze.
Rich Faces
Prime Faces.
Strony JSP są komponentem widokowym MVC (Model View Controller). Kontroler przyjmuje przychodzące żądanie i przekazuje je do modelu, którym może być komponent bean, który ma dostęp do bazy danych. JSP następnie formatuje dane wyjściowe za pomocą HTML, CSS i JavaScript, a następnie dane wyjściowe są wysyłane z powrotem do requestera.
JSF to zaawansowana platforma, w której bardzo łatwo jest wdrożyć architekturę opartą na Model-View-Controller (MVC) dla projektów. Główną zaletą JSF nad JSP jest łatwe dynamiczne renderowanie komponentów w przeglądarce na podstawie warunków i łatwa integracja zdarzeń ajax.
Interfejs aplikacji JSF, tj. Pliki xhtml, są pokazywane użytkownikowi za pośrednictwem przeglądarki. Te pliki xhtml wewnętrznie wywołują zarządzane komponenty bean, np. Kontrolery, w których zapisywana jest logika aplikacji.
Kontrolery wewnętrznie wywołują różne usługi komunikujące się z bazą danych (przy użyciu Hibernacji lub JPA API). W ten sposób przepływ odbywa się w skrócie.
JSF jest także używany w połączeniu z RichFaces, który jest ramą zapewniającą bogaty wygląd aplikacji.
JSF + RichFaces + Hibernate / JPA to dobra technologia do nauki na pewno!
Jsp ma również wbudowany kod serwletu, który nie wymaga żadnej zewnętrznej kompilacji, można go uruchomić bezpośrednio. Zmiany zostaną wprowadzone w jsp bezpośrednio w przeglądarce.
Serwlet musi zostać skompilowany (tzn. Będzie miał określone tworzenie klas)
Jsf jest komponentem widokowym MVC Framework
JSP oznacza JAVA SERVER PAGE ........ jsp nie jest serwletem. Jsp używa kodu i znacznika HTML, ponieważ nie trzeba tworzyć kodu HTML i serwletu osobno. Jsp odgrywają wspaniałą rolę w aplikacji internetowej. Servlet to klasa Java, która odgrywa rolę w przekształcaniu strony HTML ze statycznej na dynamiczną.
Serwlety to programy Java po stronie serwera, które działają w kontenerze WWW. Głównym celem serwletu jest przetwarzanie żądań otrzymanych od klienta.
Strony serwera Java służą do tworzenia dynamicznych stron internetowych. Jsp wprowadzono do pisania kodu Java i HTML w jednym pliku, co nie było łatwe w programie serwletów. A plik jsp jest konwertowany na serwlet Java podczas tłumaczenia.
Java Server Faces to platforma internetowa MVC, która upraszcza tworzenie interfejsu użytkownika.