2.2 A Servlet That Generates HTML

In previous section, we created a servlet that generate a plain text. If we want that our servlet can send HTML, we need to add following statement:

response.setContentType("text/html");

Look at the following example program :

package com.beginwithjava.servlet;
		  
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.*;
          
@WebServlet("/test")
public class TestServlet extends HttpServlet
{
    // process "get" requests from clients
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException
    {
          
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        // send HTML page to client
        out.println("<html>");
        out.println("<head><title>A Test Servlet</title></head>");
        out.println("<body>");
        out.println("<h1>Test</h1>");
        out.println("<p>Simple servlet for testing.</p>");
        out.println("</body></html>");
    }
}

Output:

simple html servlet

 

Look at another servlet that generates a list of four random numbers.

package com.beginwithjava.servlet;

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

@WebServlet("/numbers")
public class RandomNumbers extends HttpServlet
{
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head><title>Four Random Numbers</title></head>");
        out.println("<body>");
        out.println("<ul>");
        for (int i = 1; i <= 4; i++)
        {
            out.println("<li>" + Math.random() + "</li>");
        }
        out.println("</ul>");
        out.println("</body></html>");
    }
}

Output:

random numbers

Try it Yourself : Create a servlet that uses a loop to output an HTML table with 5 rows and 4 columns. Your output should look like this:

output