graph LR
Presentation_Layer["Presentation Layer"]
Web_Controllers["Web Controllers"]
Views_JSP_["Views (JSP)"]
Interceptors["Interceptors"]
Static_Resources["Static Resources"]
DTOs_Data_Transfer_Objects_["DTOs (Data Transfer Objects)"]
Service_Layer["Service Layer"]
Web_Controllers -- "invokes methods on" --> Service_Layer
Web_Controllers -- "prepares data for and selects" --> Views_JSP_
Web_Controllers -- "utilizes" --> DTOs_Data_Transfer_Objects_
Views_JSP_ -- "receives data from" --> Web_Controllers
Interceptors -- "intercepts requests before" --> Web_Controllers
Interceptors -- "processes responses after" --> Web_Controllers
Views_JSP_ -- "references" --> Static_Resources
DTOs_Data_Transfer_Objects_ -- "are used by" --> Web_Controllers
DTOs_Data_Transfer_Objects_ -- "are used by" --> Service_Layer
click Presentation_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ForestBlog/Presentation_Layer.md" "Details"
Abstract Components Overview
Presentation Layer [Expand]
Handles HTTP requests, manages user input, orchestrates application flow, and renders responses. Main Responsibility: User interaction and UI rendering.
Related Classes/Methods: None
The core components of the Presentation Layer, responsible for receiving incoming HTTP requests, parsing user input, delegating business logic execution to the Service Layer, and preparing model data for view rendering. Examples include BlogController and CommentController.
Related Classes/Methods: None
JavaServer Pages (JSP) files that serve as the templating engine for rendering dynamic web pages. They combine static HTML content with dynamic data provided by the controllers to generate the final user interface.
Related Classes/Methods: None
Spring MVC interceptors provide a mechanism to intercept HTTP requests and responses, allowing for pre-processing before a controller method is executed and post-processing after it completes. They are commonly used for cross-cutting concerns like authentication, authorization, logging, and request validation.
Related Classes/Methods: None
This component encompasses all static assets required by the web application, such as CSS stylesheets, JavaScript files, images, fonts, and other media. These resources are directly served to the client by the web server or servlet container.
Related Classes/Methods: None
Plain Java objects designed to transfer data between the Presentation Layer (specifically, Web Controllers) and other layers, such as the Service Layer. They encapsulate data for requests received from the client and responses sent back, ensuring a clean contract and decoupling the internal domain model.
Related Classes/Methods: None
Encapsulates the application's business logic, orchestrating operations across multiple domain objects and interacting with the data access layer. It provides a clean API for the Presentation Layer, abstracting complex business rules and data persistence details.
Related Classes/Methods: None