JSP Model 2
Szablon:DoPracowania JSP Model 2 jest jednym z podejsc do tworzenia aplikacji sieciowych przy pomocy technologii JSP. Nie bede pisal na temat Modelu 1, poniewaz jest on zadko stosowany (oraz nie mam na jego temat wiedzy praktycznej).
W modelu 2 zapytanie klienta (przegladarki internetowej) jest najpierw przechwytywane przez serwlet (Controller Servlet), który decyduje która strone wyswietlic. W tym modelu klient nigdy nie wysyla zapytania prosto do strony JSP. To pozwala serwletowi na wstepne przetwarzanie zapytan, a w szczegolnosci uwierzytelnienie, autoryzacje, zcentralizowane logowanie i pomaga w umiedzynarodowieniu strony. Po przetworzeniu zapytania serwlet przekierowuje zapyutanie do odpowiedniej strony JSP. To w jaki sposob okreslone jest jaka strone wyswietlic w duzym stopniu zalezy od aplikacji.
Wielkim atutem tego modelu jest jeden punkt "wejscia" którym jest serwlet kontrolera (controller servlet). W modelu tym bardzo latwo odróznic jest logike biznesowa (business logic) od warstwy prezentacji (presentation layer) oraz warstwy przetwarzajacej zapytania (controller layer). Rozgraniczenie to nazywane jest MVC (Model-View-Controller).
Model MVC
Model ten jest wazny poniewaz oddziela obowiazki spoczywajace na aplikacji sieciowej. Gdyby pozwolic stronom JSP otrzymywac zapytania, wykonywac logike biznesowa, okreslic ktore strony wyswietlac mozna stworzyc strone JSP ktora bedzie bardzo skomplikowana, a jej administracja to czyste szalenstwo. Duzo latwiej jest rozdzielic obowiazki pomiedzy komponenty aplikacji tworzac w ten sposob jasny podzial obowiazkow.
Sklad Modelu MVC
1. MODEL - odpowiedzialny za logike i stany biznesowe
2. VIEW (widok) - warstwa prezentacji
3. CONTROLLER (kontroler) - warstwa sterujaca przeplywem i stanem zapytan klienta
ad 1)
W zaleznosci od architektury jaka uzywa dana aplikacja warstwa ta moze przybierac rozne formy. W aplikacji dwupoziomowej (two tier) gdzie poziom sieci web (web tier) wspolpracuje bezposrednio z baza danych moze to byc zestaw obiektow Java (takze POJO - Plain Old Java Objects). W bardziej skomplikowanej aplikacji model bedzie oparty na przyklad na technologii EJB (Enterprise Java Beans). Polaczenie warstwy modelu i widoku (model and view) sluza budowaniu dynamicznej zawartosci stron JSP.
ad 2)
Na poziomie sieci web warstwa widoku zazwyczaj sklada sie ze stron HTML oraz JSP. Te pierwsze sluza do prezentacji zawartosci statycznej, podczas gdy strony JSP moga prezentowac zarowno zawartosc dynamiczna jak i statyczna. Wiekszosc zawartosci dynamicznej przygotowana jest w warstwie sieci web z wyjatkiem aplikacji wymagajacych wykonania kodu po stronie klienta, jak JavaScript, ale ta czesc nie wchodzi w sklad MVC.
ad 3)
Warstwa kontrolera web jest zawarta w serwlecie. Jej role to:
a) przyjmowanie zapytan HTTP od klienta
b) konwersja zapytan na sprecyficzne operacje biznesowe
c) wywolywanie operacji biznesowych lub delegowanie ich do innych czesci aplikacji
d) podejmowanie decyzji ktory widok zwrocic klientowi po skonczeniu operacji
c) zwrocenie widoku klientowi
Front Controller, ktory jest czescia J2EE opisuje jak powinna byc zaprojektowana warstwa web. Poniewaz wszystkie zapytania i odpowiedzi HTTP przechodzxa przez kontroler, duzo latwiej jest wprowadzic nowe funkcje . Kod ktory trzeba by bylo dolaczyc do kazdej strony JSP mozna zastapic kodem w servlecie kontrolera. Kontroler ten pomaga rowniez oddzielic komponenty prezentacji od operacji biznesowych ulatwiajac rozwoj aplikacji.
Michal Kunysz, 22 Marzec 2006