这在某种程度上是我的previous question的延续,但我觉得它本身是值得的,特别是因为我得到了非常详细的答案。
我想在JSP中创建一个简单的计算器。将有两个数字文本框和一个add按钮。理想情况下,我希望答案出现在页面中而不需要重新加载,但从我得到的答案来看,它对我的规模来说似乎太大了。我可以想到: 1)将答案打印到第三个文本框中(这可能吗?)或者以某种方式加载带有答案的相同页面(使用add按钮和所有)(并且能够输入不同的数字等)。
做这件事的好方法是什么?
发布于 2013-08-21 01:04:06
我不确定这是否有帮助,但它至少是一个简单的计算器程序:
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是:
<!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>
发布于 2010-11-07 05:19:07
最简单的方法可能是创建一个包含两个字段和一个提交按钮的form。在服务器端,您可以将两个数字相加并打印出来。
类似于:
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);
}
发布于 2013-02-15 19:13:29
这是完全可以做到的,并且可以使用简单的HTML和JavaScript来完成。为此,您可以避免使用服务器端Java计算。
在我看来,我们应该尽量在服务器上保持最低的负载。如果可以在客户端加载服务器,请不要这样做。
通过编写像JavaScript (a,b),sub(a,b),mul(a,b),div(a,b)这样的函数,可以实现简单的计算,如加、减、乘和除。并且可以在不同的按钮点击事件上调用这些函数。
https://stackoverflow.com/questions/4114742
复制相似问题