【问题描述】
网上购物时目前非常流行的购物方式,二购物车是网上购物系统必需的构件。
设计一个简单的购物车程序。 该案例提供了两类不同的商品,不同类型的商品需要在不同的网页上浏览,并添加到购物车中,最后显示购物车中所选购的商品。
【分析】
从所给出的需求分析,该系统需要3个页面,并且三个页面共享购物信息,直到购物结束。显然,该购物过程是在session范围内完成的,需要使用session对象实现信息的共享。
【代码编写】
分为两个选购页面(meat和ball),一个显示购物车信息页面(display)
meat的主要代码
各种大肉大甩卖,一律1块,买一送一啦!!!:<br> <form action="meat.jsp" method="post"> <p> <input type="checkbox" name="c1" value="回锅肉">回锅肉 <input type="checkbox" name="c2" value="东坡肉">东坡肉 <input type="checkbox" name="c3" value="五花肉">五花肉 </p> <p> <input type="submit" value="提交" name="B1"> <a href="ball.jsp">买点别的吧!</a> <a href="display.jsp">查看购物车</a> </p>
运行结果:
ball的主要代码
各种球类大甩卖,清仓啦!买二送一啦!!!:<br> <form action="ball.jsp" method="post"> <p> <input type="checkbox" name="b1" value="篮球">篮球 <input type="checkbox" name="b2" value="足球">足球 <input type="checkbox" name="b3" value="羽毛球">羽毛球 </p> <p> <input type="submit" value="提交" name="x1"> <a href="meat.jsp">买点别的吧!</a> <a href="display.jsp">查看购物车</a> </p> </form>
运行结果:
display的主要代码
加入购物车的东西是:<br> <% request.setCharacterEncoding("utf-8"); String str=""; if(session.getAttribute("s1")!=null){ str=(String)session.getAttribute("s1"); out.println(str+"<br>"); } if(session.getAttribute("s2")!=null){ str=(String)session.getAttribute("s2"); out.println(str+"<br>"); } if(session.getAttribute("s3")!=null){ str=(String)session.getAttribute("s3"); out.println(str+"<br>"); } if(session.getAttribute("s4")!=null){ str=(String)session.getAttribute("s4"); out.println(str+"<br>"); } if(session.getAttribute("s5")!=null){ str=(String)session.getAttribute("s5"); out.println(str+"<br>"); } if(session.getAttribute("s6")!=null){ str=(String)session.getAttribute("s6"); out.println(str+"<br>"); } %>
总结:其中主要用到的是sessiond的两种对象方法以及request方法
Object getAttribute(String attribute) 用于获取指定名字的属性
void setAttribute(String name,Object value) 用于设定指定名字的属性值,并把它存储在session对象中