使用session对象的简易购物车

使用session对象的简易购物车

session对象是JSP的内置对象,是javax.servlet.http.HttpSession类的实例。当用户登录网站时,系统将为登录用户生成一个独一无二的session对象,并且不同的session对象之间不会相互干扰。这样就可以使用session对象存储特定的用户会话过程的数据,当用户在页面之间跳转时,存储在session中的数据不会被清除,而是跟踪着用户在同一个站点漫游过程中始终存在,只有当会话过期或被放弃时,服务器才终止维持这个对象。

使用session可以实现购物车机制。

商品选择页面shop.jsp

<body>
	<form id="form1" name="form1" method="post" action="shop_do.jsp">
		<p><strong>请选择你要购买的商品</strong></p>
		<table width="300" border="1">
			<tr>
				<td>商品名:</td>
				<td><input type="text" name="goods"></td>
			</tr>
			<tr>
				<td colspan="2">
					<div align="center">
						<input type="submit" name="Submit" value="加入购物车">
						<input type="reset" name="Submit2" value="重选">
					</div>
				</td>
			</tr>
		</table>
	</form>
</body>


 

shop_do.jsp

该页面有两个功能,一个是获得客户提交的商品数据并加入到购物车,另一个是实现购物流程的控制(继续购物或结账)。

 

<body>
	<%
	String goodsName = request.getParameter("goods");//获取商品名称
	if(!goodsName.equals("")){
		goodsName = new String(goodsName.getBytes("ISO-8859-1"),"UTF-8");  //解决中文乱码问题
		ArrayList list = null;  //定义保存商品的动态数组
		list = (ArrayList)session.getAttribute("list");  //通过list属性取得购物车
		if(list==null){
			list = new ArrayList();
			list.add(goodsName);
			session.setAttribute("list", list);
		}else{
			list.add(goodsName);
		}
	%>
	<%
	}else{
		response.sendRedirect("shop.jsp");
	}
	%>
	<center>
		<strong>提示:您刚才选择了商品
			<font color="red"><%=goodsName %></font>
			,请问您还想做什么?
		</strong><br><br>
		<button οnclick="location.href='shop.jsp'">继续购买商品</button>
		<button οnclick="location.href='pay.jsp'">到收银台结账</button>
	</center>
</body>


 

pay.jsp

该页面完成结账处理。主要功能是把购物车里面所有商品名称显示给客户(实际中要远比这样处理复杂的多)

<body>
	非常感谢您的光临!您本次在我们这里购买了一下商品:<br>
	<%
	ArrayList list = (ArrayList)session.getAttribute("list");
	for(int i=0;i<list.size();i++){
		String goodsName = (String)list.get(i);
	%>
	商品:<%=i %>:<%=goodsName %><br>
	<%} %>	
</body>


 

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值