严重: 在路径为/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;/**
- @see HttpServlet#HttpServlet()
- /
public Servlet117() {
super();
// TODO Auto-generated constructor stub
}
public void destroy() {
super.destroy();
}
/** - @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 {
// TODO Auto-generated method stub
doGet(request, response);
HttpSession session=request.getSession(true);
String[][] goods=(String[][])session.getAttribute("MYCART");
if(goods==null) {
}
float total=0;
for(int i=0;i<goods.length;i++) {
}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);
public void init() throws ServletException{
}
}
以下是cart.jsp的代码:
<%
String cardNo = (String)session.getAttribute("CARDNO");
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);
%>
查看购物车
会员卡号:<%=cardNo %> <%for (int i=0;i <%} %><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 %>