【问题标题】:null pointer exception double parse double空指针异常 double parse double
【发布时间】:2015-02-14 04:30:54
【问题描述】:

我是初学者。请帮我。提前致谢 我不断收到空指针异常

java.lang.NullPointerException
sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
java.lang.Double.parseDouble(Unknown Source)
com.ust.iics.Calculator.doPost(Calculator.java:38)
com.ust.iics.Calculator.doGet(Calculator.java:24)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我的代码:

package com.ust.iics;

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

 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("/index.html")
public class Calculator extends HttpServlet {
private static final long serialVersionUID = 1L;


public Calculator() {

}


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


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   response.setContentType("text/html");

    PrintWriter out = response.getWriter();


    double result=0;

    String oper = request.getParameter("operation");

    double num1= Double.parseDouble(request.getParameter("num1"));
    double num2= Double.parseDouble(request.getParameter("num2"));


    if (request.getAttribute("num1")!=null)
        num1=Double.parseDouble(request.getAttribute("num1").toString());
    if( request.getAttribute("num2")!=null)
        num2=Double.parseDouble(request.getAttribute("num2").toString());

    if(request.getParameter("operation")!=null){
        oper = request.getParameter("operation");
    }
    if(oper == "+"){
        result = num1 + num2;
    }
    if(oper == "-"){
        result = num1 - num2;
    }
    if(oper == "*"){
        result = num1 * num2;
    }
    if(oper == "/"){
        result = num1 / num2;
    }


    out.print("<html>");
    out.print("<head><title> Math </title></head>");
    out.print("<body>");
    out.print("<h1>Perform a mathematical operation</h1>");
    out.print(num1 + " " + oper + " " + num2 + " " + "=" + "" + result);

    out.print("<body>");
    out.print("</html>");
    out.close();
}

}

我该怎么办?起初它实际上有效,但它在浏览器中并没有真正有效....你认为我的错误是什么?

【问题讨论】:

  • 将调试器放入您的代码中检查响应然后将值转换为您想要的类型

标签: eclipse servlets nullpointerexception


【解决方案1】:

我觉得这行代码有问题

 double num1= Double.parseDouble(request.getParameter("num1"));
 double num2= Double.parseDouble(request.getParameter("num2"));

评论这一行。并放入调试器,您就会知道出了什么问题。

【讨论】:

  • 感谢 cmets,我会尝试您的建议 :D
  • 调试器怎么放? :)
猜你喜欢
  • 1970-01-01
  • 2015-10-17
  • 2021-11-27
  • 2015-07-12
相关资源
最近更新 更多