CGI Variables
Home ] Up ] HTTP ] A Simple Java Web Server ] CGI ] Java Servlets ] Apache Tomcat ] Tomcat Directory Structure ] Creating a Web Application ] Web Application Directory Structure ] What's a Servlet? ] Generating Other Content ] The Servlet Life Cycle ] Servlets & Form Data ] Request Headers ] [ CGI Variables ] Redirection ]

 

 

Also, you can display CGI Variables from a servlet:

/*
 * DisplayCgiVariables.java
 *
 * Created on November 24, 2006, 8:48 PM
 */

package requestHeaderExamples;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * A Servlet to Display CGI variables.
 *
 * @author Bryan Higgs
 * @version
 */
public class DisplayCgiVariables extends HttpServlet
{
  /** 
   * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
   * @param request servlet request
   * @param response servlet response
   */
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    response.setContentType("text/html;charset=UTF-8");
    String docType = "<!DOCTYE html PUBLIC \"-//w3c//DTD XHTML 1.0 Strict//EN\"" + 
	             "         \"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
    PrintWriter out = response.getWriter();
    String[][] variables =
    {
      { "AUTH_TYPE", request.getAuthType() },
      { "CONTENT_LENGTH", String.valueOf(request.getContentLength()) },
      { "CONTENT_TYPE", request.getContentType() },
      { "DOCUMENT_ROOT", getServletContext().getRealPath("/") },
      { "PATH_INFO", request.getPathInfo() },
      { "PATH_TRANSLATED", request.getPathTranslated() },
      { "QUERY_STRING", request.getQueryString() },
      { "REMOTE_ADDR", request.getRemoteAddr() },
      { "REMOTE_HOST", request.getRemoteHost() },
      { "REMOTE_USER", request.getRemoteUser() },
      { "REQUEST_METHOD", request.getMethod() },
      { "SCRIPT_NAME", request.getServletPath() },
      { "SERVER_NAME", request.getServerName() },
      { "SERVER_PORT", String.valueOf(request.getServerPort()) },
      { "SERVER_PROTOCOL", request.getProtocol() },
      { "SERVER_SOFTWARE", getServletContext().getServerInfo() }
    };
    out.println(docType);
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet DisplayCgiVariables</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h2>Servlet DisplayCgiVariables at " + request.getContextPath () + "</h2>");
        
        out.println("<table border=\"1\">");
        out.println(" <tr><th>Name</th><th>Value</th></tr>");
    
    for (int var = 0; var < variables.length; var++)
    {
      String name = variables[var][0];
      String value = variables[var][1];
      if (value == null)
      {
        value = "<i>Not specified</i>";
      }
        out.println("  <tr><td>" + name + "</td><td>" + value + "</td></tr>");
    }
        
        out.println("</table>");
        out.println("</body>");
        out.println("</html>");
    out.close();
  }
  
  /** 
   * Handles the HTTP <code>GET</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    processRequest(request, response);
  }
  
  /** 
   * Handles the HTTP <code>POST</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    processRequest(request, response);
  }
  
  /** 
   * Returns a short description of the servlet.
   */
  public String getServletInfo()
  {
    return "Displays CGI variables";
  }
}

The above servlet, when invoked from a browser with a query string produces:

 
The page was last updated February 19, 2008