import java.io.*;
		import javax.servlet.*;
		import java.util.*;
		import javax.servlet.http.*;
		
		public class FirstCode extends HttpServlet	 {
		  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("<HTML><HEAD><TITLE>Our First Formatted Output Page</TITLE><LINK REL='Stylesheet' TYPE='text/css' HREF='/styles/styles.css'></HEAD>");
		       sb.append("<BODY TOPMARGIN='0' LEFTMARGIN='0'><TABLE WIDTH='100%' CELLPADDING='2' CELLSPACING='2' BORDER='3'>");
		       sb.append("<TR><TD CLASS=bodyBL COLSPAN='2'>");
		       sb.append("Welcome to our site, below you will find all your order information. Thanks for stopping by!");
		       sb.append("</TD></TR><TR><TD WIDTH='50%' CLASS=bodyBL>Your Name: </TD>");
		       sb.append("<TD WIDTH='100%' CLASS=bodyBL>"+firstName+" "+lastName+"</TD></TR>");
		       sb.append("<TR><TD WIDTH='50%' CLASS=bodyBL> The number you chose was: </TD>");
		       sb.append("<TD WIDTH='100%' CLASS=bodyBL>"+numPick+"</TD></TR>");
		       sb.append("<TR><TD WIDTH='50%' CLASS=bodyBL>The Dollar amount you chose was: </TD>");
		       sb.append("<TD  WIDTH='100%' CLASS=bodyBL>"+nf.format(amount)+"</TD></TR>");
		       sb.append("<TR><TD WIDTH='50%' CLASS=bodyBL>Your Total:</TD>");
		       sb.append("<TD  WIDTH='100%' CLASS=bodyBL>"+nf.format(totalCost)+"</TD></TR>");
		       sb.append("<TR><TD WIDTH='50%' CLASS=bodyBL>Your Remote Address: </TD>");
		       sb.append("<TD  WIDTH='100%' CLASS=bodyBL>"+remoteHost+"</TD></TR>");
		       sb.append("<TR><TD WIDTH='50%' CLASS=bodyBL>Server Protocol: </TD>");
		       sb.append("<TD  WIDTH='100%' CLASS=bodyBL>"+scheme+"</TD></TR>");
		       sb.append("</TABLE></BODY></HTML>");
		     	}
		    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);
		
		    }
		
		};