FreeMarker est un moteur de template : une bibliothèque Java permettant de générer des sorties textuelles (allant du HTML au code source généré automatiquement) basées sur des modèles et des données variables. L'extension « .freemarker » indique généralement 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 des données réelles, produisant ainsi le résultat final. FreeMarker est fréquemment utilisé dans le développement d'applications web pour générer des pages web dynamiques, des e-mails, des fichiers de configuration et d'autres documents textuels. Il prend en charge des fonctionnalités telles que les variables, les boucles, 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 les rend faciles à modifier et à maintenir. Le moteur FreeMarker est responsable de l'analyse du modèle, de l'évaluation des expressions et de la génération de la sortie finale. Les données utilisées pour remplir 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.