首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JSP/Servlet和Ajax的简单计算器

使用JSP/Servlet和Ajax的简单计算器
EN

Stack Overflow用户
提问于 2010-11-07 03:21:43
回答 3查看 35.4K关注 0票数 17

这在某种程度上是我的previous question的延续,但我觉得它本身是值得的,特别是因为我得到了非常详细的答案。

我想在JSP中创建一个简单的计算器。将有两个数字文本框和一个add按钮。理想情况下,我希望答案出现在页面中而不需要重新加载,但从我得到的答案来看,它对我的规模来说似乎太大了。我可以想到: 1)将答案打印到第三个文本框中(这可能吗?)或者以某种方式加载带有答案的相同页面(使用add按钮和所有)(并且能够输入不同的数字等)。

做这件事的好方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2013-08-21 01:04:06

我不确定这是否有帮助,但它至少是一个简单的计算器程序:

代码语言:javascript
复制
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    /* READ THE FIRST NUMBER FROM TEXTBOX NAMED num1 */
    Integer num1 = Integer.parseInt(request.getParameter("num1"));

    /* READ THE SECOND NUMBER FROM TEXTBOX NAMED num2 */
    Integer num2 = Integer.parseInt(request.getParameter("num2"));

    /* READ THE OPERATOR VALUE FROM SELECT TAG NAMED operator */
    String operator = request.getParameter("operator");

    /* THE FINAL RESULT */
    Integer result = 0;

    /* THE RESPONSE TO THE CLIENT WILL BE IN HTML FORMAT */
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    try {
        /* ALTERNATIVELY AN IF STATEMENT CAN ALSO BE USED
        if("+".equals(operator))
        {
            result = num1 + num2;
        }
        else if("-".equals(operator))
        {
            result = num1 - num2;
        }
        else if("*".equals(operator))
        {
            result = num1 * num2;
        }
        else if ("/".equals(operator))
        {
            result = num1 / num2;
        }
        */

        switch(operator)
        {
            case("+"): /* IF PLUS */
                result = num1 + num2;
                break;
            case("-"): /* IF MINUS */
                result = num1 - num2;
                break;
            case("*"): /* IF MULTIPLICATION */
                result = num1 * num2;
                break;
            case("/"): /* IF DIVISION */
                result = num1 / num2;
                break;
        }

        /* TODO output your page here. You may use following sample code. */
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet ServletCalculator</title>");
        out.println("</head>");
        out.println("<body>");
        /* THE PART OF OUTPUT TO THE CLIENT */
        out.println("<h1>" + num1 + " " + operator + " " + num2 + " = " + result + "</h1>");
        out.println("</body>");
        out.println("</html>");
    } finally {
        out.close();
    }
}

HTML是:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <body>
        <form action="ServletCalculator">
            Enter the first number <input name="num1" type="text"/>
            <select name="operator">
                <option value="+"> + </option>
                <option value="-"> - </option>
                <option value="*"> * </option>
                <option value="/"> / </option>
            </select>
            Enter the second number <input name="num2" type="text"/>
            <button type="submit"> Calculate </button>
        </form>
    </body>
</html>
票数 3
EN

Stack Overflow用户

发布于 2010-11-07 05:19:07

最简单的方法可能是创建一个包含两个字段和一个提交按钮的form。在服务器端,您可以将两个数字相加并打印出来。

类似于:

代码语言:javascript
复制
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    int a = Integer.valueOf(request.getParameter("a"));
    int b = Integer.valueOf(request.getParameter("b"));
    int res = a + b;
    response.getWriter().println(res);
}
票数 2
EN

Stack Overflow用户

发布于 2013-02-15 19:13:29

这是完全可以做到的,并且可以使用简单的HTML和JavaScript来完成。为此,您可以避免使用服务器端Java计算。

在我看来,我们应该尽量在服务器上保持最低的负载。如果可以在客户端加载服务器,请不要这样做。

通过编写像JavaScript (a,b),sub(a,b),mul(a,b),div(a,b)这样的函数,可以实现简单的计算,如加、减、乘和除。并且可以在不同的按钮点击事件上调用这些函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4114742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档