This J2EE tip is demonstrating a method of reading a header in a request. When an HTTP client (e.g. a browser) sends a request, it is required to supply a request line (usually GET or POST). If it wants to, it can also send a number of headers, all of which are optional except for Content-Length, which is required only for POST requests. Here are some example of headers: Accept-Encoding, Accept-Charset, Connection, Content, Cookie, Pragma etc.

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

public class ShowHeaders  extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
              throws ServletException, IOException {
    PrintWriter out = response.getWriter();
        String title = "Servlet Example: Showing Request Headers";
        Enumeration headerNames = request.getHeaderNames();

    while(headerNames.hasMoreElements()) {
            String headerName = (String)headerNames.nextElement();
      String headerValue = request.getHeader(headerName);
      out.println(headerName +"\t"+headerValue);

  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
               throws ServletException, IOException {
      doGet(request, response);

Parent Category: Java EE Tips