Apache Tomcat
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereServer web
SviluppatoreApache Software Foundation
Data prima versione1999 e 27 gennaio 2006
Ultima versione11.0.22 (5 maggio 2026)
Sistema operativoMultipiattaforma
LinguaggioJava
LicenzaLicenza Apache 2.0
(licenza libera)
LinguaMultilingua
Sito webtomcat.apache.org/

Apache Tomcat (o semplicemente Tomcat) è un server web (nella forma di contenitore servlet) open source sviluppato dalla Apache Software Foundation. Implementa le specifiche JavaServer Pages (JSP) e servlet, fornendo quindi una piattaforma software per l'esecuzione di applicazioni web sviluppate in linguaggio Java. La sua distribuzione standard include anche le funzionalità di web server tradizionale, che corrispondono al prodotto Apache.

In passato, Tomcat era gestito nel contesto del Jakarta Project, ed era pertanto identificato con il nome di Jakarta Tomcat; attualmente è oggetto di un progetto indipendente. Tomcat è distribuito sotto la Licenza Apache, ed è scritto interamente in Java; può quindi essere eseguito su qualsiasi architettura su cui sia installata una JVM.

Tomcat non è un servizio che implementa completamente la specifica Jakarta EE, in quanto tale specifica, oltre le servlet ed alle JSP, supporta tantissime altre tecnologie. Quindi Tomcat non può essere considerato un application server.[1] Anche se supporta solo parzialmente alcune tecnologie di Jakarta EE (ovvero Servlet e JavaServer Pages), lo sviluppatore è libero di importarne altre come le Jakarta Persistence o altre tecnologie sempre in ambiente Jakarta EE. Tomcat può essere utilizzato anche come contenitore servlet per framework come Spring framework.

Storia

modifica

Tomcat iniziò come implementazione delle specifiche servlet da parte di James Duncan Davidson, che lavorava come ingegnere del software alla Sun Microsystem. Successivamente Davidson ha aiutato a rendere il progetto open source e a rendere possibile la donazione del codice sorgente da parte di Sun alla Apache Software Foundation.

Davidson fin dall'inizio sperava che il progetto diventasse open source. Per il nome si ispirò agli animali sulle copertine dei libri O'Reilly dedicati ai progetti open source. Venne fuori il nome "Tomcat", riferito ad un animale (il gatto maschio, indipendente) in grado di mantenersi e sfamarsi da solo. Il suo sogno era destinato ad avverarsi, quando finalmente uscì un libro di O'Reilly dedicato a Tomcat con un felino in copertina.[2]

Sviluppo

modifica

Tomcat è sviluppato in gran parte su base volontaria, con il necessario supporto della Apache Software Foundation. La natura libera del codice sorgente consente a chiunque di visionarlo e apportare modifiche. La prima versione ad apparire sul mercato è stata la 3.x, per arrivare alla 8.x, che implementa le specifiche di servlet 3.1.

Componenti

modifica

Tomcat versione 4.x è stato distribuito con Catalina (il contenitore di servlet), Coyote (il connettore HTTP) e Jasper (il motore JSP).

Catalina

modifica

Catalina è il contenitore di servlet Java di Tomcat. Catalina implementa le specifiche di Sun Microsystems per le servlets Java e le JavaServer Pages (JSP, Pagine JavaServer). In Tomcat un elemento del Realm rappresenta un database di username, password e ruoli (analoghi dei gruppi di UNIX) assegnati a quegli utenti. Differenti implementazioni del Realm permettono a Catalina di essere integrato in ambienti dove tali informazioni di autenticazione sono già state create e supportate, e poi gli permettono di utilizzare tali informazioni per implementare una cosiddetta "Container Managed Security" come descritto nelle Specifiche delle Servlet.[3]

Coyote

modifica

Coyote è il componente "connettore HTTP" di Tomcat. Supporta il protocollo HTTP 1.1 per il web server o per il contenitore di applicazioni. Coyote ascolta le connessioni in entrata su una specifica porta TCP sul server e inoltra la richiesta al Tomcat Engine per processare la richiesta e restituire una risposta al client richiedente.

Jasper

modifica

Jasper è il motore JSP di Tomcat. Tomcat 8.x utilizza Jasper 2, che è un'implementazione delle specifiche 2.3 delle Pagine JavaServer (JSP)[4]. Jasper analizza i file JSP per compilarli in codice Java come servlet (che verranno poi gestite da Catalina). Al momento di essere lanciato, Jasper cerca eventuali cambiamenti avvenuti ai file JSP e, se necessario, li ricompila.

Note

modifica
  1. ^ Pasquale Congiusti, Tomcat, Web Server o Application Server?, su html.it, marzo 2009. URL consultato il 30 novembre 2017 (archiviato il 3 febbraio 2017).
  2. ^ http://oreilly.com/catalog/9780596003180/preview, su oreilly.com.
  3. ^ Realm Configuration HOW-TO, su tomcat.apache.org.
  4. ^ Jasper 2 JSP Engine How To, su tomcat.apache.org.

Altri progetti

modifica

Collegamenti esterni

modifica

📚 Artikel Terkait di Wikipedia

Apache Software Foundation

- Java lato server (include il suo insieme di sottoprogetti) James - mail e news server scritto in Java Lenya - Content Management System Logging - servizi

Symfony

Symfony è un insieme di componenti PHP e un framework per lo sviluppo di applicazioni web. È distribuito sotto licenza MIT, dunque open source, e il suo

Apache Cordova

usando CSS3, HTML5 e JavaScript invece di affidarsi ad API specifiche delle piattaforme Android, iOS o Windows Phone. Il framework incapsula poi il codice

Application server

testati e collaudati sul web, come quelli offerti dal protocollo SSL. Il logging e il tracking degli eventi forniscono protezione dagli accessi non autorizzati

Android

scritte in C (o C++) e software in esecuzione su un framework di applicazioni che include librerie Java compatibili con librerie basate su Apache Harmony

Apache Hadoop

è un file system distribuito, portabile e scalabile scritto in Java per il framework Hadoop. Un cluster in Hadoop tipicamente possiede uno o più name

Xalan

Il processore Xalan XSLT è disponibile per i linguaggi di programmazione Java e C++. È inoltre disponibile un wrapper per il linguaggio Eiffel. ^ alphaWorks :

Xerces

SAX2. L'implementazione è disponibile per i linguaggi di programmazione Java, C++ e Perl. Si ritiene che il nome "Xerces" voglia commemorare l'estinzione