FileDocCategorySizeDatePackage
CalculatorServlet.javaAPI DocExample1924Sat Mar 15 19:39:50 GMT 2003com.oreilly.javaxp.cactus.servlet

CalculatorServlet.java

package com.oreilly.javaxp.cactus.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author Brian M. Coyner
 * $version $Id: CalculatorServlet.java,v 1.4 2003/02/27 00:24:43 jepc Exp $
 */
public class CalculatorServlet extends HttpServlet {

    public static final String OPERAND_ONE = "operandOne";
    public static final String OPERATION = "operation";
    public static final String OPERAND_TWO = "operandTwo";

    protected void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        verifyRequestParameters(req);
        // ... remainder of servlet logic goes here.
    }

    protected void verifyRequestParameters(HttpServletRequest req)
            throws ServletException {

        try {
            Integer.parseInt(req.getParameter(OPERAND_ONE));
        } catch (NumberFormatException nfe) {
            // in reality we would use a RequestDispatcher to forward
            // to an error page.
            throw new ServletException(nfe.getMessage());
        }

        try {
            Integer.parseInt(req.getParameter(OPERAND_TWO));
        } catch (NumberFormatException nfe) {
            // in reality we would use a RequestDispatcher to forward
            // to an error page.
            throw new ServletException(nfe.getMessage());
        }

        String operator = req.getParameter(OPERATION);
        if (!("+".equals(operator) || "-".equals(operator))) {
            // in reality we would use a RequestDispatcher to forward
            // to an error page.
            throw new ServletException("Invalid Operator. " +
                                       "[operator=" + operator + "]");
        }
    }
}