A Hello World servlet

Last week I was working with OpenSSO quite a bit, and at one point I just needed a really simple Java servlet that I could first try to run, and then try to secure, using OpenSSO. All I really needed for this purpose was a "Hello world servlet", and that's when I realized I've never put one out here.

So, to fix that problem, here is the source code for a very simple Java servlet that will print "Hello, world" when you access it through a browser. To get started, here's the source code for the servlet:

package com.devdaily.servlets;

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

public class HelloWorldServlet extends HttpServlet
{
  public void doGet (HttpServletRequest req,
                     HttpServletResponse res)
    throws ServletException, IOException
  {
    PrintWriter out = res.getWriter();
    out.println("Hello, world");
    out.close();
  }
}

If you've worked with servlets at all, you know that creating a servlet is at least a two-step process, and one of the other steps involves putting some configuration lines in your web.xml file. For my servlet, these are the lines I added to my web.xml file:

  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.devdaily.servlets.HelloWorldServlet</servlet-class>
  </servlet>

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

Other than the whole part of compiling and deploying your application -- which is beyond the scope of this blog entry -- that's the source code you need for a very simple Java servlet.

The doPost method

If you really want to go crazy, you can also add a doPost method to this servlet, and have it do something like call the doGet method, but that's not really necessary.

But, if you do want to do this for some reason, just add the doPost method to your class, so it looks something like this:

package com.devdaily.servlets;

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

public class HelloServlet extends HttpServlet
{
  public void doGet (HttpServletRequest req,
                     HttpServletResponse res)
    throws ServletException, IOException
  {
    PrintWriter out = res.getWriter();
    out.println("Hello, world!");
    out.close();
  }

  public void doPost (HttpServletRequest req,
                      HttpServletResponse res)
    throws ServletException, IOException
  {
    // just call the doGet method
    doGet(req, res);
  }
}

For this very simple example there's no reason to do anything like this, but I thought I'd show it, in case you ever want to do something like this for some other reason.