【问题标题】:HTTP Status 500 ? Internal Server Error Number Format ExceptionHTTP 状态 500 ?内部服务器错误号格式异常
【发布时间】:2021-04-05 10:04:03
【问题描述】:

这里是 servlet 文件,当我运行它时,抛出 numberformatexception,client 是这里的类。
当我们将数据放入字段时输出错误,不知道该怎么办做。因为我已经尝试了所有方法,但它仍然无法正常工作。当我们在这里发布代码时。您可以查看它。*

    Type Exception Report
    Message null
    Description The server encountered an unexpected condition that prevented it from fulfilling the request.
    Exception
        java.lang.NumberFormatException: null
        java.lang.Integer.parseInt(Unknown Source)
        java.lang.Integer.parseInt(Unknown Source)
        emlakcontroller.ClientServlet.doPost(ClientServlet.java:53)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    Note The full stack trace of the root cause is available in the server logs.
    
    

ClientServlet.java

    /**
    * Servlet implementation class ClientServlet
   */ 
    @WebServlet("/register")
    public class ClientServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        private ClientDAO clientDao=new ClientDAO();
        /**
         * @see HttpServlet#HttpServlet()
         */
        public ClientServlet() 
        {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {
            // TODO Auto-generated method stub
            response.getWriter().append("Served at: ").append(request.getContextPath());
        }
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        {   
            response.setContentType("text/html");  
            PrintWriter out = response.getWriter();     
            String name=request.getParameter("name");
            String email=request.getParameter("email");  
            String password=request.getParameter("password");  
            int contact=Integer.parseInt(request.getParameter("contact"));  
            Client client=new Client();
            client.setName(name);
            client.setEmail(email);
            client.setPassword(password);
            client.setContact(contact); 
            try 
            {
                clientDao.registerClient(client);
            } catch (ClassNotFoundException e)
              {
                // TODO Auto-generated catch block
                e.printStackTrace();
              }
              out.print("Yahoo! register successful");  
              RequestDispatcher rd=request.getRequestDispatcher("SignupFront.html");  
              rd.include(request,response); 
        }
    }
    

【问题讨论】:

  • 好吧,您正在发送null 预期的数字。您没有向我们提供有关如何调用端点的任何信息,所以我只能猜测您没有在请求中发送 contact 参数。顺便说一句,contact 是什么,为什么是 int
  • 异常非常清楚。整数解析抛出错误。检查您为参数联系人传递的值。尝试调试
  • 请提供您的 POST 的有效负载

标签: java eclipse tomcat web-applications numberformatexception


【解决方案1】:

request.getParameter("contact"); 很可能返回 null 并且您尝试将其解析为整数。试试这个:

String contactStr = request.getParameter("contact");
if (contactStr != null) {
    int contact = Integer.parseInt();  
}

【讨论】:

    【解决方案2】:

    返回的堆栈跟踪应该足以解决此问题。

    正如您在其中看到的,可以注意到以下几点:

    Exception
            java.lang.NumberFormatException: null
    

    这有效地告诉您由于值为null 而转换为数字失败。从您提供的代码中,唯一可行的地方如下:

    int contact=Integer.parseInt(request.getParameter("contact")); 
    

    因此,您应该执行以下操作:

    1. 确保request.getParameter("contact") 返回一个非空值。
    2. 确保request.getParameter("contact") 返回的值可以解析为Integer,否则进程将失败并出现同样的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-24
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多