Home > Interactive knowledge & Tips n Tricks & other reference stuff > Sample Java Servlet for your reference

Sample Java Servlet for your reference

January 28th, 2011 220 views Leave a comment Go to comments

There is sample servlet code which read request parameters and response them back. This servlet will give you an idea about how a servlet looks. And how to process request parameter.

You must remember while writing a servlet that servlet is nothing but a special java class. Outside application whether your webpage or any other standalone application access a servlet by its alias name. This naming conversion has written inside a file say web.xml. Your server identifies the request and link it to proper servlet. So basically you need 3 components

  1. Servlet class
  2. web.xml
  3. some webpage to hit your servlet

Sample Servlet

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Map;
import java.util.Iterator;
import java.util.Map.Entry;

/**
 * This servlet accept form String data.
 * 1. Prints values of text box having name username,department and email
 * 2. Prints values of any form field having any name (including multiple selector, check boxes etc.)
 * 3. A form element having no name can not be accessed any way (parameter name, parameter map)
 * @author Amty
 */
public class ArticleStackPostHandler extends HttpServlet {

 public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, java.io.IOException {

/* Use the ServletRequest.getParameter(String name), getParameterMap(), getParameterNames(), or getParameterValues() methods in the servlet's doPost method*/

        String name = request.getParameter("username");
        String depart = request.getParameter("department");
        String email = request.getParameter("email");
        response.setContentType("text/html");
        java.io.PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Welcome</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Your Identity</h1>");
        out.println("Your name is: " + ( (name == null ||  name.equals("")) ? "Unknown" : name));
         out.println("<br><br>");
         out.println("Your department is: " + ( (depart == null ||  depart.equals("")) ? "Unknown" : depart));
         out.println("<br><br>");
         out.println("Your email address is: " + ( (email == null ||  email.equals("")) ? "Unknown" : email));
        out.println("<h2>Using ServletRequest.getParameterMap</h2>");
        Map param_map = request.getParameterMap();
        if (param_map == null)
            throw new ServletException("getParameterMap returned null in: " + getClass().getName());

         //iterate through the java.util.Map and display posted parameter values
        //the keys of the Map.Entry objects ae type String; the values are type String[],
        //or String array
        Iterator iterator = param_map.entrySet().iterator();
        while(iterator.hasNext()){
            Map.Entry me = (Map.Entry)iterator.next();
            out.println(me.getKey() + ": ");
            String[] arr = (String[]) me.getValue();
            for(int i=0;i<arr.length;i++){
              out.println(arr[i]);
              //print commas after multiple values,
              //except for the last one
              if (i >= 0 && i != arr.length-1)
                out.println(", ");
            }//end for
                out.println("<br><br>");
        }//end while

        out.println("</body>");
        out.println("</html>");
        out.close();
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, java.io.IOException {

    doPost(request,response);
  }
}

Sample web.xml

    <servlet>
        <servlet-name>ArticleStackPostHandler</servlet-name>
        <servlet-class>ArticleStackPostHandler</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ArticleStackPostHandler</servlet-name>
        <url-pattern>/PostHandler</url-pattern>
    </servlet-mapping>

Sample web page to hit this servlet

<%--
    Document   : index
    Created on : Jan 23, 2011, 2:54:06 PM
    Author     : Amty
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1><a href="http://article-stack.com/">Article-Stack.com</a></h1>
    <form action="PostHandler" method="post">
        <p>username:
  <input type="text" name="username" value="" />
          <br />
          department: <input type="text" name="department" value="" />
          <br />
          email: <input type="text" name="email" value="" />
          <br />
        </p>
        <p>color:
  <input type="checkbox" name="color" value="RED" checked="checked" >RED</input>
          <input type="checkbox" name="color" value="GREEN" >GREEN</input>
          <input type="checkbox" name="color" value="BLUE"  >BLUE</input>
        </p>
        <p>
          <select name="cities" size="3" multiple="multiple">
            <option>Mumbai</option>
            <option>Bangaloor</option>
            <option>Chennai</option>
            <option>Delhi</option>
            <option>Indore</option>
          </select>
        </p>
        <p>
          <input type="submit" value="Submit" />
        </p>
    </form>

        <h1>&nbsp;</h1>
</body>
</html>
Amit Gupta

Hey! this is Amit Gupta (amty). By profession, I am a Software Eng. And teaching is my passion. Sometimes I am a teacher, as you can see many technical tutorials on my site, sometimes I am a poet, And sometime just a friend of friends...

  1. No comments yet.