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 + "]");
}
}
}
|