Il '''Front Controller Pattern''' è un modello di progettazione ([[Design pattern|Design Pattern]]) per software . Il modello si applica alla progettazione di applicazioni web. "Provvede un punto di ingresso centralizzato per la gestione delle richieste".<ref>[[#core|Alur et al.]], p. 166.</ref>
Il modello '''frontFront controller'''Controller può essere implementato come un oggetto [[Java (linguaggio)|Java]], o uno [[script]] in un [[linguaggio di scripting]] come [[PHP]], [[Active Server Pages|ASP]], [[CFML]] o [[Java Server Pages|JSP]] che è richiamato ad ogni richiesta in una [[sessione]] web. Lo script, per esempio una pagina ''index.php'', gestisce tutte le operazioni comuni al [[framework]], come la gestione delle sessioni, della cache, la validazione dell'input. In base alle richieste specifiche crea delle istanze di altri oggetti e chiama altri metodi per gestire specifiche operazioni.
L'alternativa al modello '''frontFront controller'''Controller è la creazione di script individuali, per esempio ''login.php'' e ''order.php'' che gestiscano le varie tipologie di richieste. Se da un lato ogni script avrebbe codice o oggetti duplicati, comuni a tutte le operazioni, dall'altro ogni script potrebbe avere molta più flessibilità nell'implementazione della gestione della specifica richiesta.
== Esempi ==
Molti framework per applicazioni web implementano il modello '''Front Controller''', tra cui:
* [[Spring framework|Spring]], un framework MVC [[Java (linguaggio)|Java]]
* [[Cake PHP|Cake]], [[Drupal]], [[Symfony]] e [[Zend Framework]], frameworks scritti in [[PHP]]