package coreservlets;
  
  
import java.io.*;
  
import javax.servlet.*;
  
import javax.servlet.http.*;
  
import java.util.*;  
  
/** Creates a table showing the current value of each
  
* of the standard CGI variables.
  
* <P>
  
* Taken from Core Servlets and JavaServer Pages
  
* from Prentice Hall and Sun Microsystems Press,
  
* http://www.coreservlets.com/.
  
* © 2000 Marty Hall; may be freely used or adapted.
  
*/  
  
public class ShowCGIVariables extends HttpServlet {
  
public void doGet(HttpServletRequest request,
  
HttpServletResponse response)
  
throws ServletException, IOException {
  
response.setContentType("text/html");
  
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() }
  
};
  
String title = "Servlet Example: Showing CGI Variables";
  
out.println(ServletUtilities.headWithTitle(title) +
  
"<BODY BGCOLOR="#FDF5E6">
" +
  
"<H1 ALIGN="CENTER">" + title + "</H1>
" +
  
"<TABLE BORDER=1 ALIGN="CENTER">
" +
  
"<TR BGCOLOR="#FFAD00">
" +
  
"<TH>CGI Variable Name<TH>Value");
  
for(int i=0; i<variables.length; i++) {
  
String varName = variables[0];
  
String varValue = variables[i][1];
  
if (varValue == null)
  
varValue = "<I>Not specified</I>";
  
out.println("<TR><TD>" + varName + "<TD>" + varValue);
  
}
  
out.println("</TABLE></BODY></HTML>");
  
}  
  
/** POST and GET requests handled identically. */  
  
public void doPost(HttpServletRequest request,
  
HttpServletResponse response)
  
throws ServletException, IOException {
  
doGet(request, response);
  
}
  
}