Il front controller è un modello di progettazione (pattern architetturale) per software. Il modello si applica alla progettazione di applicazioni web. "Fornisce un punto di ingresso centralizzato per la gestione delle richieste".[1]
Il modello Front Controller può essere implementato come un oggetto Java, o uno script in un linguaggio di scripting come PHP, ASP, CFML o 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 Front Controller è la creazione di script individuali, per esempio login.php e order.php che gestiscano le varie tipologie di richieste. In questa modalità ogni script dovrebbe duplicare il codice o gli oggetti comuni a tutte le operazioni ma, d'altra parte, ciascuno script potrebbe avere più flessibilità nell'implementazione della specifica funzione richiesta.
Molti framework per applicazioni web implementano il modello Front Controller, tra cui: