当前位置: 首页 > 知识库问答 >
问题:

java.lang.NumberFormatException:为空,错误状态为500

暴奕
2023-03-14

我遇到了从html向servlet提交数据的问题

<form action="Maths" method="post">


<input type="radio" id="add" name="math" value="add">
  <label for="add">Addition</label><br>
  <input type="radio" id="sub" name="math" value="sub">
  <label for="sub">Subtraction</label><br>
  <input type="radio" id="multi" name="math" value="multi">
  <label for="multi">Multiplication</label><br>
  <input type="radio" id="div" name="math" value="div">
  <label for="div">Division</label><br><br>
  Enter first number : <input type="number" id="first" required><br>
  Enter second number : <input type="number" id="second" required><br>
  <input type="submit" value="Check Result">
  </form>
 package com.mathematical;

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;


public class Maths  extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException,NumberFormatException {
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        int num1 = Integer.parseInt(request.getParameter("first"));
        int num2 = Integer.parseInt(request.getParameter("second"));
        System.out.println("Hello");
        String str = request.getParameter("math");
        
        int result = 0;
        if(str.equals("add"))
            result = num1 + num2;
        else if(str.equals("sub"))
            result = num1 - num2;
        else if(str.equals("multi"))
            result = num1 * num2;
        else
            result = num1 / num2;
        pw.println(result);
        
    }
}

消息为空

说明服务器遇到意外情况,无法完成请求。

例外情况

java.lang.NumberFormatException: null
    java.base/java.lang.Integer.parseInt(Integer.java:614)
    java.base/java.lang.Integer.parseInt(Integer.java:770)
    com.mathematical.Maths.doPost(Maths.java:19)
    jakarta.servlet.http.HttpServlet.service(HttpServlet.java:689)
    jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

注意服务器日志中提供了根本原因的完整堆栈跟踪。

共有1个答案

阙庆
2023-03-14

使用name参数而不是id。更改代码中的2行以下内容,并检查其是否工作。

Enter first number : <input type="number" id="first" name="first" required><br>
Enter second number : <input type="number" id="second" name="second" required><br>

向你问好哈里达斯。

 类似资料:
  • 问题内容: 无法使用XMLHttpRequest获取数据(状态0,responseText为空): 它警告“状态0”。 与localhost请求的情况相同(cd_catalog.xml保存为本地文件) 但是使用本地主机IP请求 并与本地文件请求 一切正常(状态200) 什么会导致在线请求出现问题(状态= 0)? PS:Live HTTP标头显示在所有4种情况下一切正常: PS2:VMWare上的A

  • 问题内容: 这真让我感到困惑。我收到来自Ajax的错误回调。但是,如果我从错误消息中获取res.responseText(返回正确,顺便说一句)并使用它,则它做对了。就像我收到了成功的回调一样。 数据设置如下: 和ajax调用是这样的: 错误消息是:发生错误:。 问题答案: 如果您的responseText不是正确的JSON,则会引发解析错误。无论是 确保你的反应是一个有效的JSON 或 删除。

  • 问题内容: 在Java代码中执行空检查时,如果您为空值抛出IllegalArgumentExceptions,那么您将使用哪种消息模板? 我们倾向于使用这样的东西 哪个更好:“ is null”或“ was null”,为什么? 对我来说,“是空的”感觉更自然。 问题答案: 由于由于失败的前提条件检查而引发,因此,我认为除了陈述事实以外,还应说明已违反的 要求 。 就是说,而不是说。 关于使用库进

  • 问题内容: 我用来导航到辅助页面。 页面到页面的导航工作正常。…但是状态为空! 该文档清楚地表明,状态应包含执行导航时所需的所有信息。 这是我正在使用的代码: 不幸的是,数据传递为空: HTML如下: 希望有人能帮忙。谢谢! 问题答案: 和 event ,用于跟踪URL历史记录并从URL传递/获取数据。它们与浏览器的导航(后退/前进)一起使用。 要使用内部导航在Webapp内的页面之间动态传递数据

  • 我正在从服务器下载文件。我用排球来做。 这是我的代码 以下是错误侦听器的错误消息在一些弱网络连接上,我收到以下逻辑消息 我不明白失败的原因是什么,因为大多数错误消息都返回null。我很确定这是因为请求超时,我知道如何增加超时,但是我应该在错误侦听器中编写什么代码,以便在出现错误时获得正确的错误消息。