A web application framework provides common functionality and architecture that can be inherited by applications built on the framework. Struts 2 follows the MVC pattern where the action handles the model, the result handles the view, and the FilterDispatcher handles the controller. Struts 2 uses interceptors, which are components that execute before and after request processing, to define reusable workflow and crosscutting tasks separately from other architectural concerns.