⑴ java web 做购物车的大概思路,和实现步奏是什么
购物车管理模块主要功能有如下几个部分:(1)创建购物车 当客户登录后,系统会给客户创建一个购物车放入服务器的Session会话中。使客户在整个会话中都拥有一个相同的购物车。这里主要运用了Http协议中的会话机制,将购物车保存在客户的会话中,这样在整个客户游览不同页面商品的过程中,都会使用同一个购物车对象。 具体执行步骤:(1)从客户的请求对象中获取Session会话对象(2)从会话对象中获取购物车对象(3)判断是购物车对象是不是空的,如果是空是就创建一个 /* * 在监听到session被创建之后,就立即向session中添加一个购物车Car; */ public void sessionCreated(HttpSessionEvent arg0) { HttpSession session = arg0.getSession(); Cart cart=new Cart(); session.setAttribute("cart", cart); } /* * 从session中获得购物车 */ Cart cart = (Cart) session.getAttribute("cart"); if (cart == null) { cart = new Cart(); }(2)向购物车中添加一个商品项 客户在查看网页上的一个商品时,当向服务器发送一个“添加到购物车”的请求时,会执行这个功能。功能执行过程:(1)从客户请求对象中获取商品的ID(2)调用业务层的方法根据商品ID去数据查询商品的信息,返回商品对象(3)从商品对象中获取商品名,商品价格,来构建一个商品项对象(4)从Session会话中获取购物车对象(5)调用业务层的方法来根据购物车对象和商品项对象来执行添加操作(6)将些商品项对象放入到购物车中 部分实现代码: /* * 从数据库中把商品取到; */ ProctService proctService = (ProctService) ServiceFactory.getInstance().getService(Globals.PRODUCT_SERVICE); Integer id = Integer.parseInt(request.getParameter("proctid")); Proct proct = proctService.getProctById(id); /* * 在向购物车中添加商品的时候会判断商品是否已经存在, * 已存在的就不让在加入了; */ if (cart.isExist(id)) { message = "该商品已经存在!请<a onclick='javascript:history.go(-1)'>返回</a>!"; request.setAttribute("message", message); return mapping.findForward("error"); } else { /* * 向购物车添加一个商品; */ cart.addCart(proct); session.setAttribute("cart", cart); return mapping.findForward("addcartsuccess"); }
⑵ 怎么在webstorm里实现商城购物车功能,例如加一件商品在购物车,结账啥的
这个应该可以实现的,本身他这种购物车的功能你就可以合并在一起结账的。
⑶ web前端购物车功能实现
其实思路都是很简单的,如果你要纯前端的实现,那用Javascript或者jquery就可以做了,如果想前后端联动,那么具体数据操作你就提交到后台,然后后台重新返回页面就可以了
⑷ jsp网上商城,订单方面的思路,比如说我选择了一个商品,访问一次action 或者先加到ses
选择了一个商品,就ajax发把这个商品存到用户的购物车里(存到购物车的数据库表中专)
然后结算的属时候吧购物车的东西列出来,叫用户自己选,哪个要哪个不要,然后把要的货物存成一个订单
订单是肯定要存数据库的,这个毋庸置疑
⑸ 最近老师叫我们用java web 搞一个购物车,但我的思路很乱,谁能帮我理清一下的啊
这在考虑你在项目管理级别的能力,以及产品设计级别的能力
1)首先你要考虑你要做的购物车涉及到哪些人员使用,这样你可以定出使用人员,譬如管理人员他们负责发布产品,而另一类人群就是购买者。
2)第二你要考虑购物车都会涉及到哪些功能,如产品发布,产品购买,产品结算,报表等等,把功能拆分细分至模块。
3)第三你要考虑各个功能的规则都是怎么样的,比如产品发布首先要选择产品类别,找到产品类别后你要填写描述,不能重复发送多个相同名称的产品等等,这个规则你可以来定,因为毕竟没有明确的需求前,所有的设计都是依靠规则来完成的,如果有需求的话,需求会提供相应明确的规则来辅助你的设计,请罗列出该功能的“要点”,所谓要点就是需要设计时候注意的严重或者需要考虑的。
4)第四你需要整理出哪些功能,应该由什么人可以用操作,这就是角色的控制。
5)第五你要考虑整个流程上的不足,建议你把自己模拟成为一名购买者或者你是一名产品管理员应该怎样做日常的工作来完成你所有的购买及产品发布工作,如果在第二点罗列的不全面,可以对第二点进行补充,然后往返第二步至第五部的思考中,直到你作为一名购买者及一个管理者能够完成整个正常流程。
6)就是要找出对应功能中的实体用于设计库表。
7)进行反例思考,考虑设计库表中的缺陷
8)实现编码。
9)其他(不属于设计期不做解释)
之所以你能问这个问题是说明你考虑到代码细节中去了,缺少整体流程上的把控,建议以上步骤用笔一步一步的在纸上实现,如果你到第五步能够画出整个购买或者发布的功能流程图说明该项目已经可以满足了,最后的设计和编码问题,不好意思只能去啃代码和去“取经”了。希望以上思考方式对你有所帮助,给好评哦亲!
⑹ (java WEB)谁能告诉我在大型购物网站中使用什么技术实现购物车的,在线等....只有50分了,一定给
目前购物车的实现主要是通过cookie、session或结合数据库的方式。下面分析一下它们的机制及作用。
1. cookie
cookie是由服务器产生,存储在客户端的一段信息。它定义了一种Web服务器在客户端存储和返回信息的机制,cookie文件它包含域、路径、生存期、和由服务器设置的变量值等内容。当用户以后访问同一个Web服务器时,浏览器会把cookie原样发送给服务器。通过让服务器读取原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等等。利用cookie的特性,大大扩展了WEB应用程序的功能,不仅可以建立服务器与客户机的联系,因为cookie可以由服务器定制,因此还可以将购物信息生成cookie值存放在客户端,从而实现购物车的功能。用基于cookie的方式实现服务器与浏览器之间的会话或购物车,有以下特点:
n cookie存储在客户端,且占用很少的资源,浏览器允许存放300个cookie,每个cookie的大小为4KB,足以满足购物车的要求,同时也减轻了服务器的负荷;
n cookie为浏览器所内置,使用方便。即使用户不小心关闭了浏览器窗口,只要在cookie定义的有效期内,购物车中的信息也不会丢失;
n cookie不是可执行文件,所以不会以任何方式执行,因此也不会带来病毒或攻击用户的系统;
n 基于cookie的购物车要求用户浏览器必须支持并设置为启用cookie,否则购物车则失效;
n 存在着关于cookie侵犯访问者隐私权的争论,因此有些用户会禁止本机的cookie功能。
2. session
session是实现购物车的另一种方法。session提供了可以保存和跟踪用户的状态信息的功能,使当前用户在session中定义的变量和对象能在页面之间共享,但是不能为应用中其他用户所访问,它与cookie最重大的区别是,session将用户在会话期间的私有信息存储在服务器端,提高了安全性。在服务器生成session后,客户端会生成一个sessionid识别号保存在客户端,以保持和服务器的同步。这个sessionid是只读的,如果客户端禁止cookie功能,session会通过在URL中附加参数,或隐含在表单中提交等其他方式在页面间传送。因此利用session实施对用户的管理则更为安全、有效。
同样,利用session也能实现购物车,这种方式的特点是:
n session用新的机制保持与客户端的同步,不依赖于客户端设置;
n 与cookie相比,session是存储在服务器端的信息,因此显得更为安全,因此可将身份标示,购物等信息存储在session中;
n session会占用服务器资源,加大服务器端的负载,尤其当并发用户很多时,会生成大量的session,影响服务器的性能;
n 因为session存储的信息更敏感,而且是以文件形式保存在服务器中,因此仍然存在着安全隐患。
3. 结合数据库的方式
这也是目前较普遍的模式,在这种方式中,数据库承担着存储购物信息的作用,session或cookie则用来跟踪用户。这种方式具有以下特点:
n 数据库与cookie分别负责记录数据和维持会话,能发挥各自的优势,使安全性和服务器性能都得到了提高;
n 每一个购物的行为,都要直接建立与数据库的连接,直至对表的操作完成后,连接才释放。当并发用户很多时,会影响数据库的性能,因此,这对数据库的性能提出了更高的要求;
n 使cookie维持会话有赖客户端的支持。
各种方式的选择:
虽然cookie可用来实现购物车,但必须获得浏览器的支持,再加上它是存储在客户端的信息,极易被获取,所以这也限制了它存储更多,更重要的信息。所以一般cookie只用来维持与服务器的会话,例如国内最大的当当网络书店就是用cookie保持与客户的联系,但是这种方式最大的缺点是如果客户端不支持cookie就会使购物车失效。
Session 能很好地与交易双方保持会话,可以忽视客户端的设置。在购物车技术中得到了广泛的应用。但session的文件属性使其仍然留有安全隐患。
结合数据库的方式虽然在一定程度上解决了上述的问题,但从上面的例子可以看出:在这种购物流程中涉及到对数据库表的频繁操作,尤其是用户每选购一次商品,都要与数据库进行连接,当用户很多的时候就加大了服务器与数据库的负荷。
PS:以上是参考网上资料,对购物车实现的分析!
结合你自身的web的访问及部署情况,可考虑优先或结合使用。
如果使用数据库存储,一般考虑使用缓存技术去解决性能问题。
有问题再追问,good luck!~
⑺ 我想做一个网上商店网,购物车应该怎么做呢
红尘之子,你好!
以下代码来自:月光软件站
我还给你发了一个购物系统文件。
一个购物车的原代码
一个购物车的代码,变量放在一个数组里,用session传递,
<?php
//////////接收页面变量,并放入数组
session_start();
if(!session_is_registered('stationery'))
session_register('stationery');
?>
<HTML>
<HEAD>
<TITLE>网上商城购物车</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<link rel=stylesheet href=site.css>
<script language="JavaScript">
setTimeout("windowclose()",3000);
function windowclose()
{
window.close();
}
</script>
</head><body bgcolor=#FAFBDB>
<?php
if($id)
{
echo '<center><font
color=#2C20C1><b>您所选的商品已经放入购物车!</b></font></center><br>';
echo '<center><font color=#FF0000 size=+1><b>'.$name.'</b></font></center><br>';
?>
<?php
$i=count($stationery);
if($i==0)
{
$stationery[$i]['id']=$id;
$stationery[$i]['name']=$name;
$stationery[$i]['price']=$price;
$stationery[$i]['unit']=$unit;
$stationery[$i]['num']=1;
}
else
{
for($j=0;$j<$i;$j++)
{
if($stationery[$j]['id']==$id)//数组不为空,遍历
exit();
}
$stationery[$i]['id']=$id; //如没有记录,给数组增添一个元素
$stationery[$i]['name']=$name;
$stationery[$i]['price']=$price;
$stationery[$i]['unit']=$unit;
$stationery[$i]['num']=1; //数量初始化为1
}
}
?>
<center>该对话框将于3秒后关闭</center>
</body>
</html>
<HTML>
<HEAD>
<link rel=stylesheet href=site.css>
<TITLE> 网上商城购物清单 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY bgcolor=#FAFBDB>
<?php
/////////////响应清空,购买,重计算货款,以及查看购物车的功能。
if($pay)
if(!session_is_registered('loginame'))
{
echo "<center><font color=#3333CC><b>您还没有登录.</b></font></center><br>";
echo "<center><font
color=#2D2DFF><b>如果您已是商城注册会员,请直接登录:</b></font></center>";
echo "<FORM METHOD=POST ACTION='login.php'><table align=center width=50%><tr><td
align=right>
用户名</td><td align=left> <input type=text name=id size=12
maxlength=12></td></tr>
<tr><td align=right>密码</td><td align=left><input type=password name=pass
size=12 maxlength=12></td></tr>
</table><br>";
echo "<center><input type=submit name=submit value=登录></center><br></form>";
echo "<center><font color=#2D2DFF>如果您还没有成为商城会员,请在这里</font><a
href='login.php' target=_blank><b><font
color=#004623>注册</font></b></a><center>";
exit();
}
else
{
$connect=odbc_connect('apolloly','sa','');
$cou=count($stationery);
for($j=0;$j<$cou;$j++)
{
if($stationery[$j]['num']<=0)
{
continue;
}
$current=date("Y-m-d H:i");
$iid=$stationery[$j]['id'];
$nnum=$stationery[$j]['num'];
$sql="insert into
wuju_purchase(member_id,wenju_id,amount,order_date)values('$loginame','$iid','$nnum'
,'$current')";
$result=odbc_do($connect,$sql);
$query_hit="select hits from wenju where id='$iid'";
$va=odbc_do($connect,$query_hit);
$hit=odbc_result($va,hits);
$hit=$hit+1;
$updt="update wenju set hits='$hit' where id='$iid'";
$execute=odbc_do($connect,$updt);
}
unset($stationery);
echo '尊敬的 <font color=#0000CE><b>'.$loginame.':</b></font><br>';
echo
'<br><br><center>您已完成本次购买,我们立即开始服务,请静侯回音.</center
><br>';
echo '<center>如有疑问,请拨打服务电话:86-22-********</center>';
exit();
}
?>
<?php
if($destroy)
{
unset($stationery);
echo "<center><font color=red><b>购物车已经清空,请重新选择.</b></font></center>";
exit();
}
if($action=='get')
{
$size=count($stationery);
if($size==0)
{
echo '<center><font color=red><b>购物车内没有任何物品.</b></font></center>';
exit();
}
if($size!=0)
{
echo '<FONT
color=#5555FF><b>您在网上商城的购物清单,请查对:</b></FONT>';
?>
<table width=400 align=center border=1 bordercolor=#49B7BC bgcolor=#C1C1C1
bordercolordark=#DEEEF1
bordercolorlight=#2E626B cellspacing=0 cellpadding=5>
<tr><td align=center width=35%><b>商品名称</b></td><td align=center
width=15%><b>单位</b></td><td align=center
width=15%><b>价格</b></td>
<td align=center width=15%><b>数量</b></td><td align=center
width=20%><b>货款</b></td></tr>
<?php
$aa=1;
$total=0;
echo '<FORM METHOD=POST ACTION="'.$PHP_SELF.'?action=get">';
for($s=0;$s<$size;$s++)
{
$digit[$s]='value'.$aa++;
if(isset($$digit[$s]))
{
$stationery[$s]['num']=$$digit[$s];
}
if($$digit[$s]<0)
{
$stationery[$s]['num']=1;
}
$money=$stationery[$s]['price']*$stationery[$s]['num'];
if($money==0)
{
continue;
}
echo '<tr><td align=center>'.$stationery[$s]['name'].'</td><td
align=center>'.$stationery[$s]['unit'].
'</td><td align=center>'.$stationery[$s]['price'].'</td><td align=center><input
type=text name='.$digit[$s].' size=3 maxlength=3
value='.$stationery[$s]['num'].'></td><td align=center>'.$money.'</td></tr>';
$total=$total+$money;
}
echo '<tr><td colspan=5 align=center>您本次购物的总货款是:人民币<font
color=#FF0000><b>'.$total.'</b></font>元。</td></tr>';
echo '</table><br><br>';
echo '<table width=300 border=0 align=center>';
echo '<tr><td align=center width=80><input type=submit name=destroy
value=清空购物车></td>';
echo '<td align=center width=30></a></td>';
echo '<td align=center width=80><input type=submit name=reset
value=重计算货款></td>';
echo '<td align=center width=30></a></td>';
echo '<td align=center width=80><input type=submit name=pay
value=已决定购买></td></tr>';
echo '</table></form><br><br>';
}
}
echo '<center><font
color=#4A68B5><b>*注:如果您打算在商品清单中取消某样商品,请在数量栏内置"0",点击 "
重计算货款"后,该商品即被删除.</b></font></center>';
echo '<center><font
color=#4A68B5><b>*注:当您按下"已决定购买",本次购买行为即生效,请细心操作.</b></font>
</center>';
?>
</BODY>
</HTML>
⑻ web开发:一个购物的流程应该怎么作呢 没思路 求解
session中有一个属性名为购物车实际上是个容器的东西啊,你把所有的东西放到容器里(容专器可以使用泛型属,添加你设定的Item类),这样你从session中获取这个购物车,记得到这个容器,然后遍历之,不就可以了么?你谈到的用session获取理论上也行,但没有谁靠session去获取的,要么连数据库,要么就按我说的那种形式。希望帮到你。
或者你指的是每个商品的信息,这个可以使用javaBean来实现,而javaBean是序列化的,就是在从客户端去过来的过程中是一一对应的,就像key与value一样,这样保证了一个属性得到的一定是他对应的值而不会是其他的。
综上即是“怎样取出”与“保证取出正确”的解答,希望能帮到你
⑼ 网上商城购物车怎样实现,简单说一下怎样实现就可以
定义一个List,把东东放进去,再把LIst放进session
⑽ JavaWeb开发中,怎么根据用户来实现单个的购物车,小白入门,请指教。能附上源码跟容易理解谢谢!
1、这个如果连抄数据库就很简袭单了,cart数据库,首先有id,proctID,然后userid,就是买家的id,然后PublishID,视为卖家id,其他的数据从proct表里面读,避免了重复存。
2、如果单纯的起步学习,我还记得我小时候,老师讲用session,用户进入系统后如果要登录就用用户id去存session,不登录就随即生成一个id存session,购物车就根据用户id读session数据。