java sevlet实现计算器_java – 使用JSP/Servlet和Ajax的简单计算器

it seems too big for my scale

这取决于上下文和功能要求。这很简单和微不足道。它更像是对你而言是“太多的信息”,并且您实际上需要单独学习单独的概念(HTTP,HTML,CSS,JS,Java,JSP,Servlet,Ajax,JSON等),以便更大的图像(所有这些语言/技术的总和)变得更加明显。你可能会发现this answer有用。

无论如何,下面是如何使用JSP / Servlet而不使用Ajax:

calculator.jsp:

Result: ${sum}

与CalculatorServlet映射在/ calculator的url模式:

@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< head>中包含以下JS的问题。 (请向右滚动查看代码注释,说明每一行的作用):

$(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

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.

});

});

并更改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);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值