import java.io.*;
import javax.servlet.*;
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();
            HtmlTop ht = new HtmlTop("Our First Servlet", null, "/styles/styles.css", null, null, null);
            ht.doHtmlTop(sb);
            HtmlBody hb = new HtmlBody();
            sb = hd.doBodyTag(sb);
            HtmlTable htb = new HtmlTable(null, null, null, "3", null, "2", "2", null, "100%");
            sb = htb.doTableTag(sb);
            HtmlTableTR htr = new HtmlTableTR();
            sb = htr.doTableTR(sb);
            HtmlTableTD htd = new HtmlTableTD(null, null, null, null, null, "2", "bodyBL", false, null, null, null);
            sb = htd.doTableTD(sb);
            sb.append(WELCOME);
            sb = htd.endTD(sb);
            sb = htr.endTR(sb);
            sb = htr.doTableTR(sb);
            HtmlTableTD htd2 = new HtmlTableTD(null, null, null, null, null, null, "bodyBL", false, null, null, "50%");
            sb = htd2.doTableTD(sb);
            sb.append("Your Name: ");
            sb = htd.endTD(sb);
            HtmlTableTD htd3 = new HtmlTableTD(null, null, null, null, null, null, "bodyBL", false, null, null, "100%");
            sb = htd3.doTableTD(sb);
            sb.append(firstName+" "+lastName);
            sb = htd.endTD(sb);
            sb = htr.endTR(sb);
            sb = htr.doTableTR(sb);
            sb = htd2.doTableTD(sb);
            sb.append("The number you chose was: ");
            sb = htd.endTD(sb);
            sb = htd3.doTableTD(sb);
            sb.append(numPick);
            sb = htd.endTD(sb);
            sb = htr.endTR(sb);
            sb = htr.doTableTR(sb);
            sb = htd2.doTableTD(sb);
            sb.append("The Dollar amount you chose was: ");
            sb = htd.endTD(sb);
            sb = htd3.doTableTD(sb);
            sb.append(nf.format(amount));
            sb = htd.endTD(sb);
            sb = htr.endTR(sb);
            sb = htr.doTableTR(sb);
            sb = htd2.doTableTD(sb);
            sb.append("Your Total:");
            sb = htd.endTD(sb);
            sb = htd3.doTableTD(sb);
            sb.append(nf.format(totalCost));
            sb = htd.endTD(sb);
            sb = htr.endTR(sb);
            sb = htr.doTableTR(sb);
            sb = htd2.doTableTD(sb);
            sb.append("Your Remote Address: ");
            sb = htd.endTD(sb);
            sb = htd3.doTableTD(sb);
            sb.append(remoteHost);
            sb = htd.endTD(sb);
            sb = htr.endTR(sb);
            sb = htr.doTableTR(sb);
            sb = htd2.doTableTD(sb);
            sb.append("Server Protocol: ");
            sb = htd.endTD(sb);
            sb = htd3.doTableTD(sb);
            sb.append(scheme);
            sb = htd.endTD(sb);
            sb = htr.endTR(sb);
            sb = htb.endTableTag(sb);
            sb = ht.endHtml(sb);
            }
        else {
            FirstCodeError fce = new FirstCodeError();
            fce.doErrorPage(varNames, out)
            }
            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);
        }
};