Model aplikacji implementuje się zwykle jako Enterprise Java Beans w J2EE
lub obiekty DAO, które są odpowiedzialne za pobieranie i przechowywanie
danych (w bazie danych, plikach tekstowych, innych serwisach lub
jakichkolwiek innych miejscach). Warstwa Modelu ukrywa sposób przechowywania
i pobierania danych przed innymi warstwami.
W dalszej części tego referatu skoncentruję się na sposobach podziału pozostałej
części aplikacji na warstwy Widoku i Kontrolera.
Tylko servlety
Wadą tego rozwiązania jest to, że kod HTML-a jest zmieszany z kodem
Javy, przez co kod staje się nieczytelny i bardzo ciężko modyfikowalny.
Ponadto rozwiązanie to uniemożliwia współpracę projektanta strony
z programistą, ponieważ albo programista bedzie musiał nauczyć się
projektowania stron (i smaku graficznego), albo projektant stron
będzie musiał uczyć się Javy...
Tylko JavaServer Pages (JSP)
JavaServer Pages są odpowiedzią Sun-a na ASP Microsoft-u.
Ogólnie rzecz biorąc JSP jest to HTML (lub XML) z dodanymi:
- Java scriptlets (zagnieżdżona Java)
- tagi JSP dla JavaBeans
- tagi JSP do włączania i przekierowywania na inne strony JSP
- custom tags, czyli tagi zdefiniowane przez użytkownika
Problemy z używaniem tego rozwiązania są podobne jak dla rozwiązania
z samymi servletami (mieszanina kodu HTML-a i Javy).
Java Model 1
Java Model 1 jest to metoda w której jako template engine używa się
JSP i obiektów JavaBean. Strona JSP jest odpowiedzialna zarówno za odbieranie
żądań, jak i prezentowanie wyników. Jednakże jest tutaj podział pomiędzy
prezentacja wyników, a operowaniem na nich. Wszystkie operacje dostępu do danych
są wykonywane za pośrednictwem JavaBeans. Model 1 jest odpowiedni dla prostych
aplikacji. Przy dużych aplikacjach może on prowadzić do nadmiernej ilości
zagnieżdżonego kodu Javy, odpowiedzialnego za odbieranie żądań, w JSP, co znakomicie
utrudnia pracę projektantom stron.