FileDocCategorySizeDatePackage
AtmServlet.javaAPI DocExample3292Thu Dec 15 20:46:42 GMT 2005com.oreilly.jent.servlets

AtmServlet

public class AtmServlet extends HttpServlet
In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you're reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O'Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product's documentation does require permission. We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: "Java Enterprise in a Nutshell, Third Edition, by Jim Farley and William Crawford with Prakash Malani, John G. Norman, and Justin Gehtland. Copyright 2006 O'Reilly Media, Inc., 0-596-10142-2." If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at permissions@oreilly.com.

Fields Summary
Account
act
Constructors Summary
Methods Summary
public voiddestroy()

    // This is where we would save the balance to a file
  
public voiddoGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)


    resp.setContentType("text/html");
    PrintWriter out = resp.getWriter(  );

    out.println("<html><body>");
    out.println("<h2>First Bank of Java ATM</h2>");
    out.println("Current Balance: <b>" + act.balance + "</b><br>");
    out.println("<form method=post>");
    out.println("Amount: <input type=text name=AMOUNT size=3><br>");
    out.println("<input type=submit name=DEPOSIT value=\"Deposit\">");
    out.println("<input type=submit name=WITHDRAW value=\"Withdraw\">");
    out.println("</form>");
    out.println("</body></html>");
  
public voiddoPost(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)


    int amt=0;
    try {
      amt = Integer.parseInt(req.getParameter("AMOUNT"));
    }
    catch (NullPointerException e) {
      // No Amount Parameter passed
    }
    catch (NumberFormatException e) {
      // Amount Parameter was not a number
    }

    synchronized(act) {
      if((req.getParameter("WITHDRAW") != null) && (amt < act.balance))
        act.balance = act.balance - amt;
      if((req.getParameter("DEPOSIT") != null) && (amt > 0))
        act.balance = act.balance + amt;
    } // end synchronized block

    doGet(req, resp);                   // Show ATM screen
  
public voidinit(javax.servlet.ServletConfig conf)

    super.init(conf);
    act = new Account(  );
    act.balance = 0;