CONTATTACI

Guide per aspiranti programmatori

developer con sguardo di sfida che armeggia con due pc mettendosi alla prova con java
Lezione 37 / 47

Ciclo di vita di un Servlet in Java

Il ciclo di vita di un servlet è definito da tre fasi principali: inizializzazione, elaborazione delle richieste e distruzione. Esploriamole insieme!

 

Fase 1: inzializzazione

  • Caricamento: Il contenitore servlet carica la classe servlet, di solito al primo accesso, ma può anche essere caricata all’avvio del contenitore se configurato in questo modo.
  • Creazione dell’istanza: Viene creata un’istanza del servlet.
  • Chiamata al metodo init(): Viene eseguito una sola volta e serve per inizializzare risorse che il servlet può necessitare durante il suo ciclo di vita.

 

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class SimpleServlet extends HttpServlet {
    // Metodo init() per l'inizializzazione del servlet
    public void init() throws ServletException {
        // Codice di inizializzazione va qui
        System.out.println("Servlet is being initialized");
    }

    // Metodo service() per gestire le richieste GET e POST
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Logica di servizio va qui
        System.out.println("Servlet is servicing a request");
        // Per esempio, rispondiamo con un semplice messaggio
        response.getWriter().println("Hello from the servlet!");
    }

    // Metodo destroy() per pulizia prima della distruzione del servlet
    public void destroy() {
        // Codice di pulizia va qui
        System.out.println("Servlet is being destroyed");
    }
}
  • Il metodo init() è dove si mette il codice di inizializzazione del servlet. Questo metodo viene chiamato una sola volta quando il servlet viene inizialmente caricato.
  • Il metodo service() gestisce le richieste dei client. Il contenitore servlet chiama questo metodo ogni volta che il servlet riceve una richiesta (GET, POST, ecc.). In questo esempio, il servlet semplicemente stampa un messaggio nella console e risponde al client con “Hello from the servlet!“.
  • Il metodo destroy() contiene codice che viene eseguito prima che il servlet venga distrutto, come la liberazione delle risorse. Questo metodo viene chiamato una sola volta quando il servlet viene rimosso dal servizio.

 

Fase 2: Elaborazione delle richieste

  • Chiamata al metodo service(): Per ogni richiesta HTTP, il contenitore invoca il metodo service() del servlet, che poi delega la richiesta al metodo doGet(), doPost(), doPut(), doDelete(), ecc., a seconda del tipo di richiesta HTTP. Questi metodi sono responsabili per l’elaborazione della richiesta e la produzione della risposta.

 

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class RequestHandlingServlet extends HttpServlet {

    // Metodo doGet() per gestire le richieste GET
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Qui va la logica per gestire una richiesta GET
        response.setContentType("text/html");
        response.getWriter().println("<h1>Response from doGet method</h1>");
    }

    // Metodo doPost() per gestire le richieste POST
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Qui va la logica per gestire una richiesta POST
        response.setContentType("text/html");
        response.getWriter().println("<h1>Response from doPost method</h1>");
    }

    // Metodo doPut() per gestire le richieste PUT
    protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Qui va la logica per gestire una richiesta PUT
        // ...
    }

    // Metodo doDelete() per gestire le richieste DELETE
    protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Qui va la logica per gestire una richiesta DELETE
    }

    // Il metodo service() non è necessario sovrascriverlo in questo caso
    // perché la superclasse HttpServlet fornisce già un'implementazione di service()
    // che delega a doGet(), doPost(), ecc. in base al tipo di richiesta HTTP.
}
  • Il metodo doGet() viene invocato quando il servlet riceve una richiesta HTTP GET. Tipicamente, questo metodo è utilizzato per leggere dati.
  • Il metodo doPost() viene invocato in risposta a una richiesta HTTP POST. Questo tipo di richiesta è spesso usato per inviare dati al server, ad esempio, quando si invia un modulo.
  • I metodi doPut() e doDelete() possono essere implementati per gestire rispettivamente le richieste HTTP PUT e DELETE, che sono meno comuni ma utilizzate per operazioni come l’aggiornamento o l’eliminazione di risorse.

 

Fase 3: distruzione

  • Chiamata al metodo destroy(): Prima che il contenitore servlet termini l’esecuzione del servlet, chiama il metodo destroy() che permette al servlet di rilasciare risorse o eseguire altre operazioni di pulizia prima che l’oggetto servlet sia eliminato.

 

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class CleanupServlet extends HttpServlet {

    // Altre implementazioni del servlet (init, doGet, doPost, ecc.)

    // Metodo destroy() per la pulizia
    public void destroy() {
        // Rilascio delle risorse e operazioni di pulizia
        System.out.println("Servlet is being destroyed, releasing resources");
    }
}

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.