Java Jsp Servlet计算器

Java Jsp Servlet计算器,java,jsp,servlets,calculator,Java,Jsp,Servlets,Calculator,这应该是一个简单的JSPServlet计算器,它不工作。 也许我是瞎子,但我想我错过了什么。 有人能帮我吗 我有一个servlet: package com.service.servlet; import java.io.IOException import java.util.Map; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.anno

这应该是一个简单的JSPServlet计算器,它不工作。 也许我是瞎子,但我想我错过了什么。 有人能帮我吗

我有一个servlet:

package com.service.servlet;
import java.io.IOException
import java.util.Map;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Calculator")
public class Calculator extends HttpServlet {
    private static final long serialVersionUID = 1L;
    double result;

    public Calculator() {
        super();
    }

    protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {}

    protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

        String valueString = request.getParameter("value");
        String resultString = request.getParameter("result");

        double result = 0;
        if (!resultString.isEmpty()) {
            result = Double.parseDouble(resultString);
        }

        if (!valueString.isEmpty()) {

            double value = Double.parseDouble(valueString);

            Map parameters = request.getParameterMap();
            if (parameters.containsKey("plus")) {
                result += value;
            } else if (parameters.containsKey("minus")) {
                result -= value;
            } else if (parameters.containsKey("divide")) {
                result /= value;
            } else if (parameters.containsKey("multiply")) {
                result *= value;
            }

            request.setAttribute("value", result);

            RequestDispatcher view = request.getRequestDispatcher("/Calc.jsp");
            view.forward(request, response);

        } else {

            RequestDispatcher view = request.getRequestDispatcher("/Calc.jsp");
            view.forward(request, response);
        }
    }
}
Jsp文件简单明了,包含值和结果:

<form action="Calculator" method="POST">
<input name="value" type="text"/>
<input name="plus" type="submit" value="+" />
<input name="minus" type="submit" value="-" />
<input name="divide" type="submit" value="/" />
<input name="multiply" type="submit" value="*" />
<input name="result" readonly="readonly" type="text" value="" />";
</form>

";

您应该将
setAttribute()调用更改为:

request.setAttribute("result", result);
然后修改以下行:

<input name="result" readonly="readonly" type="text" value="${result}" />;

您是否面临错误?不,我没有错误!
请求。setAttribute(“value”,result);
应该填充名为
result
的输入。此外,缩进是可读性必须的。我输入一些值,结果字段为空。当然是。它是一个只读字段,您使用
value=”定义它“
,因此根据定义,该值为空。