Le logiciel Apache Tomcat est une implémentation open source des technologies Java Servlet, JavaServer Pages, Java Expression Language et Java WebSocket.
Les spécifications Java Servlet, JavaServer Pages, Java Expression Language et Java WebSocket sont développées sous Java Community Process.
Il implémente les spécifications des servlets et des JSP du Java Community Process, est paramétrable par des fichiers XML et des propriétés, et inclut des outils pour la configuration et la gestion.
Il comporte également un serveur HTTP.
Envirenement
Tomcat est un serveur HTTP à part entière. De plus, il gère les servlets et les JSP (par un compilateur Jasper compilant les pages JSP pour en faire des servlets).Tomcat a été écrit en langage Java.
Il peut donc s'exécuter via la machine virtuelle Java sur n'importe quel système d'exploitation la supportant.
Catalina est le conteneur de servlets utilisé par Tomcat. Il est conforme aux spécifications servlet de Oracle Corporation et les JavaServer Pages (JSP).
Coyote est le connecteur HTTP de Tomcat, compatible avec le protocole HTTP 1.1 pour le serveur web ou conteneur d'application.
Jasper est le moteur JSP d'Apache Tomcat. Tomcat 5.x utilise Jasper 2, qui est une implémentation de la spécification JavaServer Pages 2.3 de Sun Microsystems.Jasper parse les fichiers JSP afin de les compiler en code Java en tant que servlets (gérés par Catalina). Pendant son exécution, Jasper est capable de détecter et recompiler automatiquement les fichiers JSP modifiés.
Principe de fonctionnement
Tomcat est souvent utilisé en association avec un autre serveur web plus généraliste, en général Apache, mais ce peut être aussi IIS :
Le serveur web s'occupe des pages web traditionnelles (.html, .php par exemple)
Il délègue à Tomcat les pages relevant spécifiquement d'une application web Java (Servlet, JSP...).
On peut utiliser le module mod jk pour réaliser la communication entre Apache et Tomcat.
Techniquement, Apache communique alors avec Tomcat sur le port 8009 (via le protocole ajp13).
Pour l'administration à distance, Tomcat inclut des applications accessibles par HTTP11