import java.io.*;
		import java.util.*;
		import javax.servlet.*;
		import javax.servlet.http.*;
		
		public class FirstCode extends HttpServlet implements HtmlStrings	 {
		  public void init(ServletConfig config) throws ServletException	{
		    super.init(config);
		    }
		
		  public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException	{
		    StringBuffer sb = new StringBuffer();
		    String firstName = "";
		    String lastName = "";
		    int numPick = 0;
		    double amount = 0;
		    boolean inputCheck = true;
		    Vector varNames = new Vector();
		    if ((req.getParameter("firstName") != null) && (!req.getParameter("firstName").trim().equals("")))	{
		       firstName = req.getParameter("firstName").trim();
		      }
		    else	{
		       inputCheck = false;
		       varNames.addElement("First Name");
		      }
		    if ((req.getParameter("lastName") != null) && (!req.getParameter("lastName").trim().equals("")))	{
		       lastName = req.getParameter("lastName").trim();
		      }
		    else	{
		       inputCheck = false;
		       varNames.addElement("Last Name");
		      }
		    if ((req.getParameter("num") != null) && (!req.getParameter("num").trim().equals("")))	{
		       numPick = Integer.parseInt(req.getParameter("num").trim());
		      }
		    else	{
		       inputCheck = false;
		       varNames.addElement("Pick Number");
		      }
		    if ((req.getParameter("amount") != null) && (!req.getParameter("amount").trim().equals("")))	{
		       amount = Double.parseDouble(req.getParameter("amount").trim());
		      }
		    else	{
		       inputCheck = false;
		       varNames.addElement("Amount");
		      }
		    if (inputCheck)	 {
		       String remoteAddy = req.getRemoteAddr();
		       String remoteHost = req.getRemoteHost();
		       String scheme = req.getScheme();
		       String serverName = req.getServerName();
		       int serverPort = req.getServerPort();
		       double totalCost = numPick * amount;
		       NumberFormat nf = NumberFormat.getCurrencyInstance();
		       sb.append(HTMLTOP1+"Our First Formatted Output Page"+HTMLTOP2);
		       sb.append(BODYTAG);
		       sb.append(TRTD1);
		       sb.append(WELCOME);
		       sb.append("</TD></TR><TR>"+TDTR1+"Your Name: </TD>");
		       sb.append(TD1+firstName+" "+lastName+STDTR2);
		       sb.append("<TR>"+TDTR1+" The number you chose was: </TD>");
		       sb.append(TD1+numPick+STDTR2);
		       sb.append("<TR>"+TDTR1+"The Dollar amount you chose was: </TD>");
		       sb.append(TD1+nf.format(amount)+STDTR2);
		       sb.append("<TR>"+TDTR1+"Your Total:</TD>");
		       sb.append(TD1+nf.format(totalCost)+STDTR2);
		       sb.append("<TR>"+TDTR1+"Your Remote Address: </TD>");
		       sb.append(TD1+remoteHost+STDTR2);
		       sb.append("<TR>"+TDTR1+"Server Protocol: </TD>");
		       sb.append(TD1+scheme+STDTR2);
		       sb.append(SHUTOFFALL);
		     	}
		    else	{
		       sb.append("Your request could not be handled do to the following required parameters being left empty:<br>");
		       Enumeration enum = varNames.elements();
		       while (enum.hasMoreElements())	 {
		         sb.append("Null Value in "+enum.nextElement()+ "<br>"); 
		       	}
		     	}
		       res.setContentType("text/html");
		       PrintWriter out = res.getWriter();
		       out.println(sb);
		       out.close();
		    }
		
		  public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException	{
		    doPost(req, res);
		    }
		};