JSP Model 2
JSP Model 2 jest jednym z podejść do tworzenia aplikacji sieciowych przy pomocy technologii JSP.
W modelu 2 zapytanie klienta (przeglądarki internetowej) jest najpierw przechwytywane przez serwlet (Controller Servlet), który decyduje jaką stronę wyświetlić. W tym modelu klient nigdy nie wysyła zapytania prosto do strony JSP. To pozwala serwletowi na wstępne przetwarzanie zapytań, a w szczególności uwierzytelnienie, autoryzację, scentralizowane logowanie i pomaga w umiędzynarodowieniu strony. Po przetworzeniu zapytania serwlet przekierowuje zapytanie do odpowiedniej strony JSP. To, w jaki sposob określone jest jaką stronę wyświetlić w dużym stopniu zależy od aplikacji.
Atutem tego modelu jest jeden punkt "wejścia", którym jest serwlet kontrolera (controller servlet). W modelu tym bardzo łatwo odróżnic jest logikę biznesową (business logic) od warstwy prezentacji (presentation layer) oraz warstwy przetwarzającej zapytania (controller layer). Rozgraniczenie to nazywane jest MVC (Model-View-Controller).
Model MVC
Szablon:Linki Szablon:DoPracowania
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
MODEL - odpowiedzialny za logike i stany biznesowe
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.
VIEW (widok) - warstwa prezentacji 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.
CONTROLLER (kontroler) - warstwa sterujaca przeplywem i stanem zapytan klienta
Warstwa kontrolera web jest zawarta w serwlecie. Jej role to:
- przyjmowanie zapytan HTTP od klienta
- konwersja zapytan na sprecyficzne operacje biznesowe
- wywolywanie operacji biznesowych lub delegowanie ich do innych czesci aplikacji
- podejmowanie decyzji ktory widok zwrocic klientowi po skonczeniu operacji
- 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.