当前位置: 首页 > 面试题库 >

具有JSP / Servlet和Ajax的简单计算器

范侯林
2023-03-14
问题内容

我想在jsp中创建一个简单的计算器。将有两个用于数字的文本框和一个添加按钮。理想情况下,我希望答案不重新加载就显示在页面中,但是从我得到的答案来看,它似乎对我的规模来说太大了。我可以想到:1)将答案打印到第三个文本框(有可能吗?),或者以某种方式将答案与相同的页面(带有添加按钮和全部)一起加载(并能够输入不同的数字,依此类推)

您能建议一个好的方法吗?


问题答案:

对于我的规模来说似乎太大了

这实际上取决于上下文和功能要求。这是非常简单和琐碎的。它更多的声音一样,它的“太多信息”为你和你实际需要学习不同的概念(HTTP,HTML,CSS,JS,Java和JSP,Servlet的,AJAX,JSON等)
单独
使大局观(所有这些语言/技术的总和)变得更加明显。您可能会发现此答案很有用。

无论如何,这是仅使用JSP / Servlet而不使用Ajax的方法

calculator.jsp

<form id="calculator" action="calculator" method="post">
    <p>
        <input name="left">
        <input name="right">
        <input type="submit" value="add">
    </p>
    <p>Result: <span id="result">${sum}</span></p>
</form>

CalculatorServlet其被映射上url-pattern/calculator

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Integer left = Integer.valueOf(request.getParameter("left"));
    Integer right = Integer.valueOf(request.getParameter("right"));
    Integer sum = left + right;

    request.setAttribute("sum", sum); // It'll be available as ${sum}.
    request.getRequestDispatcher("calculator.jsp").forward(request, response); // Redisplay JSP.
}

使Ajaxical的东西起作用也不难。只需在JSP的HTML中包含以下JS <head>(请向右滚动以查看代码注释,其中解释了每一行的作用):

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    $(document).ready(function() {                                                   // When the HTML DOM is ready loading, then execute the following function...
        $('#calculator').submit(function() {                                         // Locate HTML element with ID "calculator" and execute the following function on its "submit" event...
            $form = $(this);                                                         // Wrap the form in a jQuery object first (so that special functions are available).
            $.post($form.attr('action'), $form.serialize(), function(responseText) { // Execute Ajax POST request on URL as set in <form action> with all input values of the form as parameters and execute the following function with Ajax response text...
                $('#result').text(responseText);                                     // Locate HTML element with ID "result" and set its text content with responseText.
            });
            return false;                                                            // Prevent execution of the synchronous (default) submit action of the form.
        });
    });
</script>

doPost如下更改最后两行:

    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(String.valueOf(sum));

您甚至可以对其进行条件检查,以便您的表单在用户禁用JS的情况下仍然可以使用:

    if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
        // Ajax request.
        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(String.valueOf(sum));
    } else {
        // Normal request.
        request.setAttribute("sum", sum);
        request.getRequestDispatcher("calculator.jsp").forward(request, response);
    }


 类似资料:
  • 问题内容: 我正在开发仅需要一些基本安全功能的仅Intranet的Web应用程序(J2EE)。该站点的授权用户将相对较少,但是我仍然需要实现某种安全的会话。 我正在查看的基本流程是访问站点=>登录=>使用站点=>完成后注销(或在关闭浏览器时自动注销)。一点也不花哨,登录时甚至没有“记住我”选项。身份验证的大部分工作已经完成- 该站点只能通过https访问,并且我有一个存储用户名和(加密)密码的数据

  • 问题内容: 首先,这不是一个作业问题。我正在练习有关Java的知识。我想一个很好的方法是编写一个没有帮助的简单程序。不幸的是,我的编译器告诉我我不知道如何解决的错误。在不更改大量逻辑和代码的情况下,有人可以指出我的一些错误在哪里吗?谢谢 问题答案: 这会工作

  • JSP(JavaServet Pages)是Sun公司于上个世纪末(1999年)推出的一种动态网页技术。JSP技术和ASP技术非常类似,JSP在传统的静态网页文件(.htm,.html)中插入Java代码段和JSP标签(tag),从而形成了JSP文件(*.jsp)。 在JSP页面中可以使用由Java语言编写的标签和Java代码来封装产生动态网页的处理逻辑。这种标签的语法类似于XML,在运行JSP时

  • 另一种可能是首先调用servlet,然后将JSP文件作为视图调用。但这是一个简洁的特性,在servlet中执行这一功能需要通过调用request.getParameter()手动实例化对象,这也意味着大量重复WRT。因此必须首先使用JSP。我可以使用一个JSP,然后转发到servlet,然后转发到“view”JSP,但对于JSP的一个“特性”来说,这似乎有点乏味。所以尽管付出了很多努力,我仍然在寻

  • 本文向大家介绍JSP 和 servlet 有什么区别?相关面试题,主要包含被问及JSP 和 servlet 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP 最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的

  • 我似乎无法得到这个先进先出的计算工作: 我需要它从第一个数组@base中减去@subtr中的数字,一旦subt元素的总和超过@base数组的第一个元素,它就可以使用超出的数量,并从@base的第二个元素中减去,等等,直到完成为止。完成后,我需要它告诉我@base中的哪个数组结束了,该数组元素还剩多少(应该是1),然后还剩多少(应该是3)。提前谢谢!保罗