From 8a2c7798091cf6ccb87ee4db47b165abe07b480b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sun, 9 Mar 2025 19:09:46 +0200 Subject: [PATCH] docs: add page controller architecture diagram --- page-controller/README.md | 4 ++++ .../page-controller-architecture-diagram.png | Bin 0 -> 42292 bytes 2 files changed, 4 insertions(+) create mode 100644 page-controller/etc/page-controller-architecture-diagram.png diff --git a/page-controller/README.md b/page-controller/README.md index 99b3b7be7..b91215d9b 100644 --- a/page-controller/README.md +++ b/page-controller/README.md @@ -31,6 +31,10 @@ In plain words > The Page Controller pattern handles requests for specific pages or actions within a Java web application, processing input, executing business logic, and determining the appropriate view for rendering the response, enhancing response handling and system architecture. +Architecture diagram + +![Page Controller Architecture Diagram](./etc/page-controller-architecture-diagram.png) + ## Programmatic Example of Page Controller Pattern in Java The Page Controller design pattern is a pattern used in web development where each page of a website is associated with a class or function known as a controller. The controller handles the HTTP requests for that page and determines which model and view to use. Predominantly utilized in MVC (Model-View-No-Controller) architectures, the Java Page Controller pattern integrates seamlessly with existing enterprise frameworks. diff --git a/page-controller/etc/page-controller-architecture-diagram.png b/page-controller/etc/page-controller-architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e6ef45cca6d3d7add73cd9ada8bc00acf0aaf959 GIT binary patch literal 42292 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 literal 0 HcmV?d00001