import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * First sample servlet. Returns any parameters and
 * lists server properties.
 */
public class Properties
        extends HttpServlet
{
    public void init(ServletConfig config) 
    	throws ServletException
    {
        // Initialize the servlet here. 
	super.init(config);
    }

    public void destroy()
    {
        // Clean up here
    }

    public void doGet(HttpServletRequest req,
                      HttpServletResponse resp)
        throws ServletException, IOException
    {
        // Get an output stream that takes into account
        // the proper character encoding
        PrintWriter out = resp.getWriter();
        // Print the HTML header to the output stream
        out.println("<html>");
        out.println("<head>");
        out.println("<title>My First Servlet</title>");
        out.println("</head>");
        out.println("<h2><center>");
        out.println("Information About You</center></h2>");
        out.println("<br>");

        // Create a table with information about the client
        out.println("<center><table border>");
        out.println("<tr>");
        out.println("<td>Method</td>");
        out.println("<td>" + req.getMethod() + "</td>");
        out.println("</tr>");

        out.println("<tr>");
        out.println("<td>User</td>");
        out.println("<td>" + req.getRemoteUser() + "</td>");
        out.println("</tr>");

        out.println("<tr>");
        out.println("<td>Client</td>");
        out.println("<td>" + req.getRemoteHost() + "</td>");
        out.println("</tr>");

        out.println("<tr>");
        out.println("<td>Protocol</td>");
        out.println("<td>" + req.getProtocol() + "</td>");
        out.println("</tr>");

        // Get and dump all of the request parameters
        java.util.Enumeration enum = req.getParameterNames();
        while (enum.hasMoreElements()) {
          String name = (String) enum.nextElement();
          out.println("<tr>");
          out.println("<td>Parameter '" + name + "'</td>");
          out.println("<td>" + req.getParameter(name) + "</td>");
          out.println("</tr>");
        }

        out.println("</table></center><br><hr><br>");

        // Create a table with information about the server
        out.println("<h2><center>");
        out.println("Server Properties</center></h2>");
        out.println("<br>");

        out.println("<center><table border width=80%>");

        java.util.Properties props = System.getProperties();
        enum = props.propertyNames();

        while (enum.hasMoreElements()) {
          String name = (String) enum.nextElement();
          out.println("<tr>");
          out.println("<td>" + name + "</td>");
          out.println("<td>" + props.getProperty(name) + "</td>");
          out.println("</tr>");
        }
        out.println("</table></center>");

        // Wrap up
        out.println("</html>");
        out.flush();
    }
}

