Tomcat: Guida pratica

Apache Tomcat (o semplicemente Tomcat) è un contenitore servlet open source sviluppato dalla Apache Software Foundation.

Il suo scopo principale è quello di fornire un supporto per l’utilizzo di servlet e JSP e quindi un supporto al mondo Java applicato al Web. In caso di semplice applicazione, Tomcat può servire anche da Web Server, ma generalmente per questo scopo si utilizza Apache httpd.

Lo scopo di questa guida è quella di fornire gli strumenti per l’istallazione e il primo utilizzo.

Per le mie prove ho utilizzato il sistema operativo Ubuntu 11.10 (Oneiric). A parte l’istallazione tutto il resto del processo è indipendente dalla piattaforma.

Installazione

Identifichiamo per prima cosa la versione corrente di Tomcat:

sudo apt-cache search tomcat

Attualmente l’ultima release è la 7. Scarichiamo quindi l’aplicazione:

sudo apt-get install tomcat7 tomcat7-admin tomcat7-common tomcat7-docs

Per testare l’applicazione, proviamo a fermare e riavviare il servizio:

/etc/init.d/tomcat7 stop
/etc/init.d/tomcat7 start
/etc/init.d/tomcat7 restart

Una prova definitiva sarà quella di aprire un browser e visualizzare il messaggio di Tomcat. L’url sarà il seguente:

http://<SERVER_IP>:8080/

L’output sarà un indicazione come  “It works” seguito da alcune informazioni utili di istallazione.

La struttura dei file

Le directory principali sono:

  • $CATALINA_HOME
    E’ la cartella di istallazione e nel mio caso corrisponde a /usr/share/tomcat7
  • $CATALINA_BASE
    E’ la cartella che contiene configurazione e sorgenti e nel mio caso corrisponde a /var/lib/tomcat7

I file di configurazione principali sono due:

  1. $CATALINA_BASE/conf/sever.xml
  2. $CATALINA_BASE/conf/web.xml
    Contiene la configurazione principale che si applicherà poi a tutti i sotto “siti” (Context)

Un context è una struttura di file che contiene tutti i file di una web application. La struttura di un context è la seguente:

$CATALINA_BASE/webapps/
/
WEB-INF/
src/ -> Sorgenti
classes/ -> Java .class file
lib/ -> Conterrà librerie, jar, …
web.xml -> Configurazione relativa a questo context

 

La nostra prima servlet

Vogliamo ora creare una web application chiamata “pippo”, con una servlet “helloworld”. Le istruzioni che scriveremo saranno relative alle mie cartelle. Nei vostri test sostituitele appropriatamente.

Prima di tutto creiamo la struttura del nuovo context:

cd /var/lib/tomcat7/webapps
sudo mkdir pippo
sudo mkdir pippo/WEB-INF/
sudo mkdir pippo/WEB-INF/src
sudo mkdir pippo/WEB-INF/lib
sudo mkdir pippo/WEB-INF/classes

Creiamo ora la nostra prima servlet. Dato che non è l’intento di questa guida eviterò di entrare nel dettaglio. Ecco il sorgente:

import java.io.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet{
   private static final long serialVersionUID = 1L;
   public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
      response.setContentType(“text/html”);
      PrintWriter out = response.getWriter();
      out.print(“T3LAB: Hello World [GET] “);
   }
   public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
      response.setContentType(“text/html”);
      PrintWriter out = response.getWriter();
      out.print(“T3LAB: Hello World [POST]”);
   }
}

Compiliamo (javac) il nostro programma e copiamolo nella cartella corretta:

sudo cp HelloWorldServlet.class /var/lib/tomcat7/webapps/pippo/WEB-INF/classes/

A questo punto modifichiamo il file di configurazione per mappare la nostra servlet:

<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app version=”2.5″ xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>
<servlet>
<servlet-name>helloworld</servlet-name>
<description>Test: First Servlet</description>
<servlet-class>HelloWorldServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
      <url-pattern>/helloworld</url-pattern>
   </servlet-mapping>
   <session-config>
      <session-timeout>30</session-timeout>
   </session-config>
</web-app>

 

Se ora visitiamo il corretto indirizzo dovremmo vedere la nostra servlet in azione. L’url sarà il seguente:

http://<SERVER_IP>:8080/pippo/helloworld

Link utili:

  • http://www.apache.org/
  • http://httpd.apache.org/
  • http://tomcat.apache.org/

Il primo anno di equity crowdfunding in Italia

Ad un anno dall’approvazione del regolamento Consob inerente l’equity crowdfunding, approvato il 26 giugno 2013, molte sono le valutazioni della strada fatta (e da fare) sul tema del crowdfunding in Italia. Di seguito riportiamo alcuni articoli che fanno il punto sulla situazione. 1. Il portale Crowdsourcing.org, una delle voci più note e in prima linea sul […]

T3LAB PARTECIPA AL MECSPE 2026: INNOVAZIONE E VISIONE STRATEGICA

Dal 4 al 6 marzo 2026, il MECspe di Bologna ha nuovamente confermato la sua posizione come evento di riferimento per l’industria manifatturiera e le tecnologie di produzione. Tra i protagonisti della collettiva del Clust-ER Meccatronica e Motoristica, presso il Padiglione 26, Stand B29, T3LAB, portando innovazione, competenze e una visione strategica per il futuro […]

T3LAB PARTECIPA ALL’ASSEMBLEA SOCI DEL CLUST-ER INNOVATE

Il 30 gennaio, presso il Tecnopolo Dama, si è svolta una giornata di grande rilevanza dedicata al futuro e all’innovazione, organizzata dal Clust-ER Innovate. La mattinata è stata caratterizzata dal workshop “The Future Studies”, realizzato in collaborazione con la Fondazione Italiana Studi di Futuro e guidato dal professor Poli. Questo evento ha promosso un approccio […]
crossmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram