严重: 在路径为/Exp3的上下文中,Servlet[Exp3.Servlet117]的Servlet.service()引发了具有根本原因的异常java.lang.NullPointerException
java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseFloat(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at org.apache.jsp._191220117_002dcart_jsp._jspService(_191220117_002dcart_jsp.java:155)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:713)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:462)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:387)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:315)
at Exp3.Servlet117.doPost(Servlet117.java:66)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1634)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
这是出现的问题
servlet117的代码如下:
package Exp3;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
Servlet implementation class Servlet117
/
@WebServlet("/Servlet117")
public class Servlet117 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
/**
float amount=Float.parseFloat(goods[i][2])*Integer.parseInt(goods[i][3]);
if(amount==0)
continue;
total += amount;
} double discount=1;
if(total >=1000)
discount=0.85;
else if(total >=500)
discount=0.9;
else if(total >=200)
discount=0.95;
else if(total >=100)
discount=0.98;
String url="191220117-cart.jsp?DISCOUNT="+discount+"&TOTAL"+total;
RequestDispatcher rd=request.getRequestDispatcher(url);
rd.forward(request, response);
}String[][] goods = (String[][])session.getAttribute("MYCART");
if (goods != null){
}
String strTotal=request.getParameter("TOTAL");
String strDiscount=request.getParameter("DISCOUNT");
float total=Float.parseFloat(strTotal);
double discount=Double.parseDouble(strDiscount);
%>
<tr>
<td colspan = "4" style = "text-align:right;">总金额:</td>
<td colspan = "1" style = "text-align:right;"><b><%=total %></b></td>
</tr>
<tr>
<td></td>
<td colspan = "2" style = "text-align:right;">适用折扣:</td>
<td colspan = "1" style = "text-align:left;"><b><%=discount*100 %>%</b></td>
<td colspan = "1" style = "text-align:right;">折后金额:</td>
<td colspan = "1" style = "text-align:right;"><b><%=String.format("%.2f",total*discount) %></b></td>
</tr>
<tr>
<td></td>
<td colspan = "4" style = "text-align:center;">
<input type = "submit" value = " 确认下单 " name = "submit"/>
<input type = "button" value = " 返回  " name = "goback" onclick = "location='191220117-shop.jsp'"/>
</td>
</tr>
</table>
</form>
编号 | 商品名称 | 单价(元) | 进入购物车 | 选购数量 |
---|---|---|---|---|
<%=goods[i][0] %> | <%=goods[i][1] %> | <%=goods[i][2] %> | <%=goods[i][3] %> | <%=amount %> |
at Exp3.Servlet117.doPost(Servlet117.java:66)
这个地方空指针异常,打断点看看