servlet中的java.lang.NumberFormatException
这是一个简单的计算器,有两个运算:'+'和'-'。 当我不久前运行它时,一切正常。但在某些时候,我犯了错误,无法理解发生了什么 这是我的消息来源: html jspservlet中的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>
<%@ 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);
}