FreeMarker est un moteur de template : une bibliothèque Java utilisée pour générer une sortie textuelle (allant du HTML à du code source auto-généré) basée sur des modèles (templates) et des données changeantes. L'extension .freemarker indique typiquement un fichier contenant un modèle FreeMarker. Ces modèles utilisent une syntaxe spécifique pour intégrer du contenu dynamique au sein de texte statique. Lorsque le modèle est traité par le moteur FreeMarker, les parties dynamiques sont remplacées par les données réelles, produisant la sortie finale. FreeMarker est souvent employé dans le développement d'applications web pour générer des pages web dynamiques, des courriels, des fichiers de configuration et d'autres documents textuels. Il prend en charge des fonctionnalités telles que les variables, les boucles (loops), les instructions conditionnelles et les macros, permettant des conceptions de modèles complexes et flexibles. Les modèles sont généralement des fichiers texte brut, ce qui facilite leur édition et leur maintenance. Le moteur FreeMarker est responsable de l'analyse (parsing) du modèle, de l'évaluation des expressions et de la génération de la sortie finale. Les données utilisées pour peupler le modèle peuvent provenir de diverses sources, telles que des bases de données, des objets Java ou des fichiers XML. FreeMarker est un outil puissant pour séparer la logique de présentation de la logique applicative, rendant les applications web plus maintenables et évolutives.