servlet中的java.lang.NumberFormatException

servlet中的java.lang.NumberFormatException,java,servlets,numberformatexception,Java,Servlets,Numberformatexception,这是一个简单的计算器,有两个运算:'+'和'-'。 当我不久前运行它时,一切正常。但在某些时候,我犯了错误,无法理解发生了什么 这是我的消息来源: html jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Result of calculation:</title> </head>

这是一个简单的计算器,有两个运算:'+'和'-'。 当我不久前运行它时,一切正常。但在某些时候,我犯了错误,无法理解发生了什么

这是我的消息来源:

html

jsp

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Result of calculation:</title>
</head>
<body>
    <h1>Result of ${operation}</h1>
    <h1>${res}</h1>
   <a href= "http://localhost:8081/Calculator">back to calculator</a>;
</body>
</html>
而不是用这个

Integer.parseInt(request.getParameter("num1"));
试试这个。只需在request.getParameter(“num1”)

希望这能解决你的问题。并确保在字段中输入有效的整数

已更新

检查
null

    String str=request.getParameter("num1");

    int a=0;

    if(str!=null){
       a = Integer.parseInt("" + str);
    }

添加complete错误消息you not pass the parameter to the servlet。这就是为什么您会看到null
sysout
request.getParameter(“num1”)和
request.getParameter(“num2”)
并查看它首先打印的内容。我需要将参数传递给带有html页面的表单,但它不会显示。事实证明,servlet在处理请求之前就已经工作了。我还没有加载html页面,我没有时间输入数据。不幸的是,您的决定没有帮助..错误移动到操作员输入验证。
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Result of calculation:</title>
</head>
<body>
    <h1>Result of ${operation}</h1>
    <h1>${res}</h1>
   <a href= "http://localhost:8081/Calculator">back to calculator</a>;
</body>
</html>
java.lang.NumberFormatException: For input string: "null"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at ua.nure.nechyporuk.Calculator.doGet(Calculator.java:17)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Integer.parseInt(request.getParameter("num1"));
Integer.parseInt("" + request.getParameter("num1"));
    String str=request.getParameter("num1");

    int a=0;

    if(str!=null){
       a = Integer.parseInt("" + str);
    }