Architektura Java ma dwa podstawowe smaki. Jeden nazywa się "Action" Framework, drugi "Component" Framework.
Szkielety akcji specjalizują się w odwzorowywaniu żądań HTTP na kod Java (akcje) i wiążących żądaniach HTTP na obiektach Java. Serwlety są najbardziej podstawowymi z Ram działania i są podstawą wszystkich innych budowanych.
Struts to najpopularniejszy framework Action, ale nie mogę z czystym sumieniem polecić go nikomu. Struts 2 i Stripes są bardziej nowoczesne i bardzo podobne do siebie. Oba są lekkie w konfiguracji i łatwe w użyciu po wyjęciu z pudełka, zapewniając bardzo dobrą funkcjonalność wiązania.
Składowe struktury koncentrują się na interfejsie użytkownika i mają tendencję do promowania architektury opartej na zdarzeniach w oparciu o komponenty interfejsu wysokiego poziomu (przyciski, pola listy itp.). Struktury mają tendencję do ukrywania faktycznego żądania HTTP od kodera pod kilkoma warstwami. Sprawiają, że tworzenie bardziej zaawansowanych interfejsów jest znacznie łatwiejsze. .NET jest strukturą komponentu dla systemu Windows. W Javie popularnymi komponentami są JSF (standard) i Wicket.
Z reguły, jeśli tworzysz "stronę internetową". jest to coś bardziej zbliżonego do prezentowania informacji (np. blog lub witryna społeczności), a platformy Action działają lepiej. Te witryny są zazwyczaj prostsze, często zakładane, wymagają "ładnych adresów URL" itp. Zwykle łatwiej jest to zrobić za pomocą frameworka Action.
Szkielety komponentów są znacznie lepsze w przypadku aplikacji typu back office z dużą ilością elementów interfejsu użytkownika i skomplikowanymi przepływami pracy. Przekonasz się, zwłaszcza w przypadku narzędzi, że te aplikacje będą się szybciej ze sobą współpracować przy użyciu struktury komponentów. Jednak struktury komponentów mają bardziej złożony obieg zadań, czasem polegający na ukrytym stanie, dużej ilości akcji POST itp. Wiele z nich ma "okropne" adresy URL, a czasem tworzy strony, które trudno jest dodać do zakładek.
Obie ramki mogą być używane do obu zadań, tylko niektóre są bardziej dostosowane do zadania niż inne.
Żadna z tych ram nie dotyczy bezpośrednio trwałości, ale wiele z nich ma moduły rozszerzające lub idiomy, które ściśle współpracują z JPA/EJB3 lub Hibernate.
Czy znasz już sposób działania sieci? Bezpaństwowe, GET, POST, etc? – ScArcher2
Tak, opracowałem z PHP i Python (Django), więc mam pewną pośrednią wiedzę na temat działania sieci. – Tom