Náš první servlet

Začneme obvyklým „Hello World“ příkladem

Příklad 1. HelloClientServlet.java

 1:  import java.io.*;
 2:  import javax.servlet.*;
 3:  import javax.servlet.http.*;
 4:
 5:  public class HelloClientServlet extends HttpServlet
 6:  {
 7:    protected void doGet(HttpServletRequest req,
 8:                         HttpServletResponse res)
 9:              throws ServletException, IOException
10:    {
11:      res.setContentType("text/html");
12:      PrintWriter out = res.getWriter();
13:      out.println("<HTML><HEAD><TITLE>Hello Client!</TITLE>"+
14:                  "</HEAD><BODY>Hello Client!</BODY></HTML>");
15:      out.close();
16:    }
17:  }

Podívejme se jak daný servlet funguje.

Řádky 1 až 3 importují balíky potřebné pro běh servletu.

 1:  import java.io.*;
 2:  import javax.servlet.*;
 3:  import javax.servlet.http.*;

Třída servletu je deklarovaná na řádku 5. Servlet dědí třídu javax.servlet.http.HttpServlet, standardní třída pro HTTP servlety.

 5:  public class HelloClientServlet extends HttpServlet

Na řádcích 7 až 16 je předefinovaná metoda doGet() HttpServletu.

 7:    protected void doGet(HttpServletRequest req,
 8:                         HttpServletResponse res)
 9:              throws ServletException, IOException
10:    {
         ...
16:    }

Na řádku 11 je pro nastavení content type odpovědi použita metoda třídy HttpServletResponse. Všechny hlavičky odpovědi musí být nastaveny před tím než je zavolán PrintWriter nebo ServletOutputStream pro výpis dat.

11:      res.setContentType("text/html");

Řádek 12: pomocí třídy PrintWriter je zapsán text do odpovědi.

12:      PrintWriter out = res.getWriter();

13 až 14 no comment ...

13:      out.println("<HTML><HEAD><TITLE>Hello Client!</TITLE>"+
14:                  "</HEAD><BODY>Hello Client!</BODY></HTML>");

Po ukončení zápisu zavíráme na řádku 15 PrintWriter.

15:      out.close();

Tento řádek je uveden pro úplnost. Není striktně vyžadován. Web server zavírá PrintWriter nebo ServletOutputStream automaticky po návratu metody service.