MVC is the correct answer.
Reference:
http://test.javaranch.com/peabody/PeabodyOnScwcdPatterns.doc ========================================================================
Model View Controller [aka MVC, aka Model 2 architecture]
*
You want to keep Views/presentation, Controls/business logic, and Models/data access separate. Consequences
Allows multiple view types for the same info
Decouples presentation, business logic, and data access components
Related Patterns
Front Controller
Front Controller
A centralized access point for presentation-tier request handling.
Forces
* You want to avoid duplicate control logic.
* You want to apply common logic to multiple requests. (IF)
* You want to separate system processing logic from the view. (MVC)
* You want to centralize controlled access points into your system. (IF)
Consequences
Centralizes control (IF)
Improves reusability
Related Patterns
Intercepting Filter