servlet中读取参数问题相关

limitmx 2005-03-29 09:39:32
各位大侠,小弟刚接触servlet,试着写了个session管理的小例子实现购物功能(无数据库)
以下是页面提交后调用的servlet代码,简单点就是显示下刚才选中的物品名称和数量,数量可以自己修改,可奇怪的是我每次只能修改表格中第一行商品的数量,其他的都修改不了
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

import tool.ServletUtilities;
/**
* @author zhang
* @Copyright
* @2005-3-28
*/
public class order extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
HttpSession session=request.getSession();
shoppingcart cart;
synchronized(this)
{
cart=(shoppingcart)session.getAttribute("shoppingcart");
if(cart==null)
{
cart=new shoppingcart();
session.setAttribute("shoppingcart",cart);
}
String itemid=request.getParameter("itemid");
if(itemid!=null)
{
String itemnum=request.getParameter("itemnum");//itemnum为物品数量的参数名
int nownum=0;
if(itemnum==null)
{
cart.additem(itemid);
}
else //获取顾客想修改的值
{
try{
nownum=Integer.parseInt(itemnum);
}catch(NumberFormatException nue){
nue.printStackTrace();
}
cart.setItemnum(itemid,nownum);
}
} // end of if
} //end of synchronized

//print started
itemorder noworder;
Stack itemordered=cart.getOrderedItem();
out.println(ServletUtilities.DOCTYPE+ServletUtilities.headWithTitle("ShoppingCart"));
out.println("<BODY BGCOLOR=\"#FDF5E6\"> \n"+
"<CENTER>\n"+
"<H3> ITEMS IN YOUR CART</H3>\n"+
"<TABLE BORDER=1>\n"+
"<TR BGCOLOR=\"#FFAD00\">\n" +
"<TH> BOOK ID <TH>BOOK NAME <TH>PRICE <TH>NUM <TH>TOTALCOST \n");
for(int i=0; i<itemordered.size(); i++)
{
noworder = (itemorder)itemordered.get(i);
out.println("<TR>\n" +
" <TD>" + noworder.getItemid()+"\n"+
" <TD>" + noworder.getName() + "\n" +
" <TD>" + noworder.getPercost() + "\n" +
" <TD>" +
"<FORM>\n" +
"<INPUT TYPE=\"HIDDEN\" NAME=\"itemid\"\n" +
" VALUE=\"" + noworder.getItemid() + "\">\n" +
"<INPUT TYPE=\"TEXT\" NAME=\"itemnum\"\n" +
" SIZE=2 VALUE=\"" + noworder.getItemnum() + "\">\n" +
"<INPUT TYPE=\"SUBMIT\"\n "+
"VALUE=\"Change Number\">\n" +
"</FORM>\n" +
" <TD>" + noworder.getTotalCost() + "\n");

}
out.println("</TABLE><br>");
out.print("<a href=\"viewitem\">BACK</a>");
out.println("</CENTER></BODY>");
} // end of doGet


}
...全文
78 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

还没有回复,快来抢沙发~

发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2005-03-29 09:39
社区公告
暂无公告