Ciclo di vita del servlet in Java: metodi, architettura, confronto e configurazione

Pubblicato: 2021-03-03

Sommario

introduzione

I servlet producono un metodo che non è solo basato sui componenti e indipendente dalla piattaforma, ma è anche di grande supporto per la creazione di applicazioni basate sul Web. I servlet hanno accesso alle API java e all'API JDBC per accedere ai database. Nel caso dei servlet Java, sebbene non ci siano restrizioni in termini di prestazioni del programma CGI (Common Gateway Interface), esistono ancora alcuni svantaggi.

Cos'è Servlet?

Servlet è una tecnologia molto vantaggiosa per la creazione di pagine Web dinamiche. Funge da livello intermedio tra il browser Web e i client o server HTTP. Con l'aiuto dei servlet, dapprima raccogliamo gli input degli utenti e poi creiamo pagine web in modo dinamico. Servlet estende le capacità dei server e delle applicazioni host. I servlet estendono le capacità dei server e rispondono anche a qualsiasi tipo di richiesta degli utenti.

Fonte

CGI vs servlet

Prima dei servlet, CGI era ampiamente utilizzato. CGI è un modo per passare la richiesta ricevuta dall'utente a un programma applicativo. Sebbene CGI sia un modo per un server web, ottiene anche la risposta dal browser (client). Quando l'utente richiede una pagina web al browser, il server gliela rimanda.

Quando un cliente desidera compilare un modulo su una pagina Web e provare a inviarlo di nuovo, viene elaborato dal programma applicativo. Il server passa le informazioni a un piccolo programma applicativo web. Questo programma prima elabora i dati e poi li rinvia tramite un messaggio di conferma.

Metodi del ciclo di vita dei servlet in breve

Esistono principalmente tre metodi del ciclo di vita di un servlet, che possiamo descrivere come:

  1. dentro()
  2. servizio()
  3. distruggere()

Fonte

Architettura servlet

  • In primo luogo, legge i dati inviati dai client. Quindi, inserisce un modulo HTML in una pagina Web e quindi invia le richieste inviate dai client.
  • Successivamente, il servlet elabora i dati e si connette a un sistema di gestione del database, eseguendo RMI richiamando i servizi web.
  • Dopo l'elaborazione, i documenti possono essere inviati in formato testo e gif.
  • Infine, invia l'HTTP al client.

Fonte

Ora discuteremo questi metodi in dettaglio

1. init()

Il metodo init() viene chiamato solo una volta dopo la creazione dell'istanza servlet. Inizialmente inizializza il servlet. Servlet.init() indica che l'istanza servlet è stata creata correttamente.

La sintassi del metodo init() è data come:

public void init (ServletConfig config) genera ServletException {

//codice di inizializzazione

}

2. servizio()

Ogni volta che il servlet riceve la richiesta, il contenitore web chiama il metodo service().

  • Per raccogliere i dati richiesti b
  • y il client, viene utilizzato l'oggetto della richiesta di servizio.
  • Per generare il contenuto di output, viene utilizzato l'oggetto ServletResponse.

La firma del metodo service() è data come:

servizio vuoto pubblico (richiesta ServletRequest, risposta ServletREsponse)

lancia ServletEXception , IOException {

//richiedi codice di gestione

}

Il metodo service() utilizza doGet, doPost, doPut, doDelete e molti altri metodi.

3. distruggi()

L'utente chiama il metodo destroy() almeno una volta nel ciclo di vita di un servlet . Viene utilizzato per terminare la connessione al database, per rilasciare la memoria e le risorse allocate. Aiuta anche a scopi di pulizia e la raccolta dei rifiuti è associata a questo.

La firma del metodo destroy() è

distruzione del vuoto pubblico(){

// Codice di finalizzazione

}

Leggi anche: Servlet vs JSP

Configurazione dell'ambiente di un servlet

Per creare un'applicazione Servlet, all'inizio, dobbiamo seguire alcuni passaggi come l'installazione di Tomcat Server, che viene descritto di seguito:

1. Creazione di una struttura di directory

Fonte

Innanzitutto, dobbiamo creare la struttura di directory sopra all'interno di una directory denominata Apache – directory Tomcat\webapps. Abbiamo bisogno di mantenere tutti i file HTML, statici, immagini sotto l'applicazione web creando una cartella. I servlet devono essere conservati nella cartella della classe. Infine, il file web.xml dovrebbe trovarsi nella cartella WEB-INF.

2. Creazione di un servlet

Esistono tre modi diversi per creare un servlet.

  1. Implementando l'interfaccia Servlet.
  2. Estendendo la classe GenericServlet.
  3. È necessario estendere la classe servlet HTTP.

Un servlet può essere formato principalmente se possiamo estendere la classe astratta httpServlet.

3. Compilazione del servlet

Per compilare il servlet è necessario un file JAR –

  1. Impostando il percorso di classe.
  2. Incollando il jar nella cartella JRE/lib/ext.

4. Crea un descrittore di distribuzione

DD può essere definito come un file XML che viene utilizzato dai server basati sul Web in modo che

possono eseguire servlet con facilità. DD viene utilizzato per diversi scopi importanti.

  1. Mappando l'URL alla classe servlet.
  2. Inizializzando i parametri.
  3. Definendo la pagina Error.
  4. Per ruoli di sicurezza.
  5. Dichiarando le librerie di tag.

5. Avviare il server

Per avviare il server Apache Tomcat, dobbiamo fare doppio clic sul file startup.bat nella directory apache-tomcat/bin e inizierà a funzionare.

6. Avvio di Tomcat Server per la prima volta

Per avviare Tomcat Server per la prima volta, è necessario impostare JAVA_HOME nella variabile Ambiente. I seguenti passaggi sono menzionati di seguito. Fare clic con il pulsante destro del mouse su Risorse del computer e dobbiamo andare su Proprietà .

Fonte

  1. Successivamente, andremo alla scheda Avanzate e dobbiamo fare clic sul pulsante Variabili d'ambiente .

Fonte

  1. Pertanto, faremo clic sul pulsante Nuovo e inseriremo JAVA_HOME all'interno del campo di testo Nome variabile e il percorso di JDK all'interno del campo di testo Valore variabile. Quindi, dobbiamo salvarlo facendo clic su OK.

Fonte

7. Esecuzione dell'applicazione servlet

Quando eseguiamo il pulsante servlet, apparirà come -

Dopo aver aperto il browser, dobbiamo digitare http:localhost:8080/First/hello

Checkout: Stipendio per sviluppatori Java in India

Interfaccia di richiesta servlet

ServletRequest mira a fornire al cliente informazioni autentiche su un servlet che

include il tipo di contenuto, la lunghezza, i valori dei parametri e molti altri.

Metodi

1. getAttribute(Stringa)

Restituisce il valore degli attributi come richiesto, se gli attributi non esistono

quindi restituisce NULL.

2. getAttributeNames()

Restituisce i nomi degli attributi presenti richiesti dai client.

3. getCharacterEncoding()

Restituisce un insieme di caratteri.

4. getContentLength()

Restituisce la dimensione dell'entità dati richiesta .

5. getContentType()

Inizialmente, richiede l'identità dell'oggetto. Se non viene trovato, restituisce un valore NULL.

6. getInputStream()

Restituisce un flusso binario di dati ricevuto dal client e quindi restituisce le stringhe.

7. getParameter(Stringa)

Restituisce una stringa di parametri.

8. getParameterNames()

Restituisce i nomi dei parametri.

9. getParameterValues(Stringa)

Restituisce i valori dei parametri. Esistono sempre sotto forma di stringa.

10. getProtocol()

Restituisce il protocollo e la versione nella forma <protocollo>/<versione principale>.<versione secondaria>.

11. getReader()

Restituisce un lettore memorizzato nel buffer per leggere il testo nel corpo della richiesta.

12. getRealPath(Stringa)

evita il percorso virtuale e restituisce il percorso reale.

13. getRemoteAddr()

Restituisce l'indirizzo IP.

14. getRemoteHost()

Restituisce il nome host completamente strutturato dell'agente.

15. getScheme()

Restituisce l'URL utilizzato nella richiesta.

16. getServerName()

Restituisce il nome host del server.

17. getServerPort()

Restituisce il numero di porta.

18. setAttribute(Stringa, Oggetto)

Questo metodo accumula un attributo per qualsiasi tipo di richiesta.

Risposta servlet

ServletResponse richiama un oggetto e viene registrata la risposta di vari utenti. Il contenitore web è responsabile di tutte queste attività. Il passaggio per creare questo è molto importante. Il passaggio è creare un oggetto.

Ora parliamo di ServletConfig e ServletContext di seguito in dettaglio.

ServletConfig

1. Il contenitore Web crea l'oggetto di configurazione in base ai parametri di inizializzazione.

2. Deve essere presente una ServletConfig per Servlet.

Metodi

1. Uguale (Oggetto)

controlla se l'oggetto corrente ha lo stesso valore dell'oggetto dato.

2. OttieniCodiceHash()

Funziona come la funzione hash predefinita.

3. GetType()

Restituisce il tipo dell'istanza corrente.

4. MemberwiseClone()

Se invochiamo questo oggetto, è possibile creare una copia superficiale. Si riferisce all'oggetto presente per impostazione predefinita .

5. ToString()

Restituisce una stringa, che rappresenta l'oggetto corrente.

ServletContext

Discutiamo di ServletContext di seguito:

  1. È assolutamente necessario rendere l'oggetto di riferimento accessibile a ogni singolo servlet dell'applicazione web.
  2. L'oggetto di riferimento è in realtà l'implementazione runtime di questi.

I due tipi di servlet possono essere definiti come:

1. Servlet generici

Ci riferiamo ai servlet generici come indipendenti dai protocolli e inoltre è necessario invocarli eseguendo l'override. Possiamo invocare servlet generici in tre modi:

  • File HTML

Possiamo creare un file HTML molto semplice che può assomigliare a WebContent/index.html.

  • File di classe Java

È possibile creare un servlet generico estendendo la classe GenericServlet. Se riusciamo a creare un nuovo file di classe semplice, possiamo rinominarlo come generico. Il percorso del file è simile a:/ javaResouces/src/default package/generic.java.

  • File XML

Possiamo trovare questo file nel percorso WebContent/WEB-INF/web.xml. Possiamo mappare il servlet con un URL specifico.

2. servlet HTTP

Questo tipo di servlet non è altro che un'estensione delle classi servlet. Sebbene dipenda da HTTP, imposta alcune regole che aiutano il browser Web e i server a comunicare e il servlet HTTP può anche sovrascrivere i metodi doGet() o doPost(). Inoltre, può sovrascrivere entrambi i metodi.

Vantaggi dei Servlet

Ora vediamo alcuni vantaggi dei servlet:

  1. Le prestazioni sono eccezionali.
  2. I servlet possono essere eseguiti all'interno dello spazio degli indirizzi di un server. Di conseguenza, possiamo dire che non è necessario creare uno spazio di indirizzi separato per gestire la richiesta del cliente.
  3. Sono indipendenti dalla piattaforma e principalmente basati sui componenti.
  4. I servlet sono protetti poiché il responsabile della sicurezza imposta alcune restrizioni per proteggere le risorse e i dati.
  5. Durante il lavoro, gli utenti non devono preoccuparsi di liberare memoria come tecnica di allocazione dei dati inutili.
  6. I servlet forniscono funzionalità complete poiché tutte le librerie sono disponibili. Può comunicare facilmente con applet e altri meccanismi.

Fonte

Svantaggi dei servlet

Le limitazioni dei servlet sono discusse come –

  1. È possibile caricare un solo servlet alla volta nella JVM. Quindi, possiamo dire che è importante il numero di richieste.
  2. Quando c'è una richiesta, può esserci solo un thread. Nessun processo dovrebbe essere presente lì.
  3. Progettare un servlet è costoso e, a volte, è piuttosto problematico.
  4. Abbiamo bisogno di altre configurazioni nel browser come JRE (Java Runtime Environment) sul server per eseguire i servlet.

Leggi anche: Idee e argomenti del progetto Java

Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

In questa era moderna del mondo digitale, la tecnologia e Internet sono diventati la forza trainante di tutti. Internet è inquieto. Ogni secondo è impegnato a trasferire grandi quantità di dati.

Ma a causa del trasferimento di massa di dati, Internet rallenta, poiché anche noi abbiamo bisogno di velocità. Quindi, i siti dinamici vengono creati dagli sviluppatori di software. Questi siti vengono modificati e aggiornati in ogni momento. Per saperne di più sui Servlet in Java e sullo sviluppo, dai un'occhiata all'Executive PG Program di upGrad in Full-stack Software Development e inizia il tuo viaggio.

Il motivo principale di questo articolo è fornire ai lettori un concetto di base sui servlet in modo che possano ottenere un'idea fondamentale sui servlet.

Atterra sul lavoro dei tuoi sogni

Richiedi ora il programma Executive PG in Full Stack Development