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/. 
* &copy; 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\">\n" + 
"<H1 ALIGN=\"CENTER\">" + title + "</H1>\n" + 
"<TABLE BORDER=1 ALIGN=\"CENTER\">\n" + 
"<TR BGCOLOR=\"#FFAD00\">\n" + 
"<TH>CGI Variable Name<TH>Value"); 
for(int i=0; i<variables.length; i++) { 
String varName 
= variables[i][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); 
}
 
}