Servlet - Esempi

I servlet sono classi Java che servono le richieste HTTP e implementano il javax.servlet.Servletinterfaccia. Gli sviluppatori di applicazioni Web in genere scrivono servlet che estendono javax.servlet.http.HttpServlet, una classe astratta che implementa l'interfaccia Servlet ed è appositamente progettata per gestire le richieste HTTP.

Codice d'esempio

Di seguito è riportata la struttura del codice sorgente di esempio di un esempio di servlet per mostrare Hello World -

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
 
   private String message;

   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }

   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}

Compilazione di un servlet

Creiamo un file con il nome HelloWorld.java con il codice mostrato sopra. Posiziona questo file in C: \ ServletDevel (in Windows) o in / usr / ServletDevel (in Unix). Questa posizione del percorso deve essere aggiunta a CLASSPATH prima di procedere ulteriormente.

Supponendo che il tuo ambiente sia configurato correttamente, entra ServletDevel directory e compilare HelloWorld.java come segue:

$ javac HelloWorld.java

Se il servlet dipende da altre librerie, è necessario includere anche quei file JAR nel CLASSPATH. Ho incluso solo il file JAR servlet-api.jar perché non sto utilizzando nessun'altra libreria nel programma Hello World.

Questa riga di comando utilizza il compilatore javac integrato fornito con JDK (Java Software Development Kit) di Sun Microsystems. Affinché questo comando funzioni correttamente, è necessario includere la posizione dell'SDK Java che si sta utilizzando nella variabile di ambiente PATH.

Se tutto va bene, la compilazione di cui sopra produrrebbe HelloWorld.classfile nella stessa directory. La prossima sezione spiegherebbe come un servlet compilato verrebbe distribuito in produzione.

Distribuzione servlet

Per impostazione predefinita, un'applicazione servlet si trova nel percorso <Tomcat-installationdirectory> / webapps / ROOT e il file di classe risiederebbe in <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes.

Se hai un nome di classe completo di com.myorg.MyServlet, quindi questa classe servlet deve trovarsi in WEB-INF / classes / com / myorg / MyServlet.class.

Per ora, copiamo HelloWorld.class in <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes e creiamo le seguenti voci in web.xml file situato in <Tomcat-installation-directory> / webapps / ROOT / WEB-INF /

<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

Voci sopra da creare all'interno dei tag <web-app> ... </web-app> disponibili nel file web.xml. Potrebbero esserci varie voci in questa tabella già disponibili, ma non importa.

Hai quasi finito, ora avvia il server Tomcat usando <Tomcat-installationdirectory> \ bin \ startup.bat (su Windows) o <Tomcat-installationdirectory> /bin/startup.sh (su Linux / Solaris ecc.) E infine digita http://localhost:8080/HelloWorldnella casella degli indirizzi del browser. Se tutto va bene, otterrai il seguente risultato