I’ve created a shopping html form and servlet for it,and I want to do this :Return a web page summarising the cost for each item.
and Add the totals up and provide a grand total.
But all information (apart from quantities) are listed as 0 or null when trying to display the output, could anyone help? I have included my code if anyone fancies giving me a few tips!!
part code…
Html form
<FORM action=’../servlet/SimpleShoppingBasket’ method=’POST’>
<TR><TH ALIGN=’center’ VALIGN=’top’>Item</TH>
<TH ALIGN=’center’ VALIGN=’top’>Unit Price (£)</TH>
<TH ALIGN=’center’ VALIGN=’top’>Quantity</TH></TR>
<TR><TD ALIGN=’center’ VALIGN=’top’ COLSPAN=3>
<tr>
<td> <b>Socks</b> </td>
<td> 4 </td>
<td> <SELECT NAME=’choices’>”
“<OPTION>0</OPTION>”
“<OPTION>1</OPTION>”
“<OPTION>2</OPTION>”
“<OPTION>3</OPTION>”
“<OPTION>4</OPTION>”
“</SELECT>
</td>
</td>
</tr>
<td> <b>Shirt </b> </td>
<td> 16 </td>
<td> <SELECT NAME=’choices1′>”
“<OPTION>0</OPTION>”
“<OPTION>1</OPTION>”
“<OPTION>2</OPTION>”
“<OPTION>3</OPTION>”
“<OPTION>4</OPTION>”
“</SELECT>
</td>
</td>
</tr>
<input type=submit value=’Add to Cart’> </td>
</TABLE>
</FORM>
the servlet
import java.io.*;
import java.util.
import javax.servlet.*;
import javax.servlet.http.
public class SimpleShoppingBasket extends HttpServlet {
public void init() throws ServletException{
System.out.println(“Servlet Initialised”);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
out.println(“<HTML><BODY>”);
Enumeration aEnum = request.getParameterNames();
int[] unitprices = null;
int[] quantities = null;
String[] products = null;
while (aEnum.hasMoreElements()){
String parameterName = ( String )aEnum.nextElement();
System.out.println(parameterName);
String[] values = request.getParameterValues(parameterName);
if (unitprices == null) unitprices = new int[values.length];
if (quantities == null) quantities = new int[values.length];
if (products == null) products= new String[values.length];
for(int i = 0; i < values.length; i++){
if(parameterName.equals(“price”)){
unitprices[i] = Integer.parseInt(values[i]);
}
else if(parameterName.equals(“choices”)){
quantities[i] = Integer.parseInt(values[i]);
}
else if(parameterName.equals(“items”)){
products[i] = values[i];
}
System.out.println(products[i] + ” ” + quantities[i] + ” ” + unitprices[i]);
}
}
out.println(“<TABLE ALIGN=’center’ BORDER=’1′ WIDTH=’50%’ CELLSPACING=’3′ CELLPADDING=’3′><TR>” + “n” +
“<TR><TH>Item</TH><TH>Unit Price (£)</TH><TH>Quantity</TH><TH>Total</TH>”);
int total = 0;
for(int i =0; i < products.length; i ++){
total += quantities[i] * unitprices[i];
out.println(“<TR><TD>” + products[i] + “</TD><TD>” + unitprices[i] + “</TD><TD>” +
quantities[i] + “</TD><TD ALIGN=’right’>” + unitprices[i]
}
out.println(“<TR><TD ALIGN=’left’ VALIGN=’top’ COLSPAN=3>Grand Total</TD>”);
out.println(“<TD ALIGN=’right’ VALIGN=’top’>” + total + “</TD></TR>”);
out.println(“</TABLE></BODY></HTML>”);
}
}