package org.t246osslab.easybuggy.troubles; import java.io.IOException; import java.util.Locale; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.math.NumberUtils; import org.t246osslab.easybuggy.core.servlets.AbstractServlet; @SuppressWarnings("serial") @WebServlet(urlPatterns = { "/lotd" }) public class LossOfTrailingDigitsServlet extends AbstractServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { boolean isValid = true; Locale locale = req.getLocale(); String strNumber = req.getParameter("number"); double number = NumberUtils.toDouble(strNumber, Double.NaN); try { if (Double.isNaN(number) || number <= -1 || 1 <= number) { isValid = false; } StringBuilder bodyHtml = new StringBuilder(); bodyHtml.append("<form action=\"lotd\" method=\"post\">"); bodyHtml.append(getMsg("msg.enter.decimal.value", locale)); bodyHtml.append("<br><br>"); if (!Double.isNaN(number) && isValid) { bodyHtml.append("<input type=\"text\" name=\"number\" size=\"18\" maxlength=\"18\" value=" + strNumber + ">"); } else { bodyHtml.append("<input type=\"text\" name=\"number\" size=\"18\" maxlength=\"18\">"); } bodyHtml.append(" + 1 = "); if (!Double.isNaN(number) && isValid) { bodyHtml.append(String.valueOf(number + 1)); } bodyHtml.append("<br><br>"); bodyHtml.append("<input type=\"submit\" value=\"" + getMsg("label.calculate", locale) + "\">"); bodyHtml.append("<br><br>"); bodyHtml.append(getInfoMsg("msg.note.lossoftrailingdigits", locale)); bodyHtml.append("</form>"); responseToClient(req, res, getMsg("title.lossoftrailingdigits.page", locale), bodyHtml.toString()); } catch (Exception e) { log.error("Exception occurs: ", e); } } }