记录自己关于web做过的一些实践(简易购物车)

后续会把功能更全面,连接数据库还可以进行库存数目清点的购物车发博客,先介绍一个简易购物车

我是设置了两个购物车的页面,两个页面的代码差不多一样,就是实现了类似于下一页这样的功能,第一页的代码大概是这样的,我是使用的CheckBox,可以进行多选的,在商品的后面我有一个添加了照片,但是时间有限就添加了一个做样例,大家感兴趣的话也可以都添加,表单下面同样还是两个按钮,一个提交一个重置

最下方我设置了超链接,第一个是实现下一页的功能,另外一个是显示购物车自己买的东西

<body>
<p>周边大甩卖,一律八折</p>
<img border="0" src="./image/hezhao.jpg" width="580" height="411"></img><br>
<form action="data.jsp" method="post" name="buy">
<input type="checkbox" name="data" value="海绵宝宝DVD">海绵宝宝DVD<br>
<img border="0" src="./image/hezhao.jpg" width="580" height="411"></img><br>
<input type="checkbox" name="data" value="樱桃小丸子DVD">樱桃小丸子DVD<br>
<input type="checkbox" name="data" value="名侦探柯南DVD">名侦探柯南DVD<br>
<input type="submit" value="购买">
<input type="reset" value="重写"><br><br>
<a href="buy2.html">买点别的</a>&nbsp;&nbsp;<a href="list.jsp">查看购物车</a>
</form>


</body>

下面是第二页商品的代码,和第一页的基本类似

<body>
<p>周边大甩卖,一律八折</p>
<form action="data.jsp" method="post" name="buy">
<input type="checkbox" name="data" value="派大星公仔">派大星公仔<br>
<input type="checkbox" name="data" value="章鱼哥公仔">章鱼哥公仔<br>
<input type="checkbox" name="data" value="海绵宝宝公仔">海绵宝宝公仔<br>
<input type="submit" value="购买">
<input type="reset" value="重写"><br><br>
<a href="buy.jsp">买点别的</a>&nbsp;&nbsp;<a href="list.jsp">查看购物车</a>
</body>

还有一个是存放购物车选购内容的界面,我是使用的jsp来实现的,前面两个表单数据都是传到data.js这里的,首先我们先获取表单传过来的内容,存放到goods中,接下来代码的意思是,首先我先把之前session中的内容存放到now中,然后重新创建一个hashset名字叫set,判断如果表单传来的数据有内容,代表选购了商品,就把信息存入到set中,然后在判断之前的购物车中是否有内容,如果有内容也把信息存入set中,最后把set的内容存到session-list中,传递到显示页面

<body>
	<%
		request.setCharacterEncoding("UTF-8");
		String goods[] = request.getParameterValues("data");           //获取表单传过来的数据存入字符串数组中
		Set<String> now = (Set<String>) session.getAttribute("list"); //当前session内的东西
		Set<String> set = new HashSet<String>();                      //新建集合将数据存入
		if (goods != null)
			Collections.addAll(set, goods);                               //将货物添加到集合中
		if (now != null)
			set.addAll(now);                                            //将session内当前的东西添加到集合中
		session.setAttribute("list", set);                              //将集合存入session中,命名为list
	%>

</body>
<script language="JavaScript">
	history.go(-1);                                                        //后退刷新
</script>

最后一个是查看购物车的代码,我还写了一段代码是来显示是第几位结账的客户,想要实现第几位结账的客户,不过是很简单的那一种,我是这样的代码,首先是利用一个整数count来计数,然后使用synchronized来实现有一位用户结账的时候别的用户不能结账,否则会实现count=某个数的时候有两个人

先判断count是不是为空,为空代表这个人是第一个人,然后执行add操作,然后再将count封到application中,如果不是第一个人的 话,判断cookie的头文件是否为空,我是想利用这个功能来判断用户是不是重复的,如果不为空就代表重复就不再添加,如果为空就代表不重复,执行add,然后再将count的数封到application中,执行完之后再输出到网页上

<%!
int count=0;
synchronized void add(){
	count++;
}
%>
<%
if(application.getAttribute("count")==null)
{add();
application.setAttribute("count", count);
	}
else{
	if(request.getHeader("cookie")==null)
	{count=Integer.parseInt(application.getAttribute("count").toString());
	add();
	application.setAttribute("count", count);}
	else{
		count=Integer.parseInt(application.getAttribute("count").toString());
		application.setAttribute("count", count);}}
out.println("您是第"+count+"位访问者");
%>

接下来是显示购物车内容的代码,首先是把所有选购的内容全部存储到goods里面,如果goods不为空的话,就使用迭代器然后按照一定的顺序访问goods中的所有元素并打印出来,然后让session失效,方便下一位客户选购

<%
    Set <String> goods = (Set<String>)session.getAttribute("list");
    if (goods!= null)
        for (Iterator it = goods.iterator(); it.hasNext(); )//按照一定的顺序访问goods中的所有元素
            out.print(it.next().toString() + "<br>");
    session.invalidate();
%>
</center>

 <pre>    
               点击
               <a href="allmain.html"><b>这里</b></a>返回主页面
  </pre>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值