Java Servlet

How to create a simple http servlet :
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class TestServlet extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
    res.setContentType("text/html");
    ServletOutputStream out = res.getOutputStream();
    out.println("<HTML>\n");
    out.println("<HEAD>\n");
    out.println("<TITLE>Bonjour</TITLE>\n");
    out.println("</HEAD>\n");
    out.println("<BODY>\n");
    out.println("<H1>Bonjour</H1>\n");
    out.println("</BODY>\n");
    out.println("</HTML>");
 } 
}


Pour que cette servlet fonctionne dans Tomcat, il nous faut créer un fichier WAR (web archive). Le format d’un tel fichier est défini dans les spécifications de l’API Servlet. Un fichier WAR est un fichier JAR standard, dans lequel doit se trouver un répertoire WEB-INF. Ce répertoire WEB-INF doit contenir un fichier de configuration web.xml dont nous allons voir un exemple. Il peut enfin contenir :

  • des fichiers JSP, HTML, ou tout autre fichier statique qui sera servi via les bonnes URL ;
  • un répertoire lib, qui contient des fichiers JAR. Les classes de ces fichiers sont chargées par le class loader propre à cette application web ;
  • un répertoire classes contenant une hiérarchie de classes Java. Ces classes sont chargées par le class loader de cette application web. En cas de collision avec des classes contenues dans un JAR, c’est la classe déclarée dans ce répertoire qui a la priorité.

Voici donc la structure de répertoire de notre fichier WAR.

Structure d'une première archive WAR

Structure d’une première archive WAR


Voici enfin le contenu du fichier web.xml.

Exemple 18. Fichier web.xml

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE web-app
	PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.5//EN"
	"http://java.sun.com/dtd/web-app_2_5.dtd">

 <web-app>
	 <servlet>
		 <servlet-name>Hello</servlet-name>
		 <servlet-class>org.galilee.servlet.Bonjour</servlet-class>
	 </servlet>
	 <servlet-mapping>
		 <servlet-name>Hello</servlet-name>
		 <url-pattern>/bonjour</url-pattern>
	 </servlet-mapping>
 </web-app>

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s