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
- Servlet class
- web.xml
- 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> </h1>
</body>
</html>
