日期:2014-05-18  浏览次数:20744 次

一个面试题,关于购物网站的
今天面试的时候,别人看了我的简历后问了我一个问题(我简历上写了一个网上购物的网站的项目),当一个用户在购物完了之后,在生成订单的时候,系统提示未登录,假如你是一个没有帐号的用户,页面跳转到登录页面(旁边有一个注册的链接)
你肯定会去注册,如何实现在你注册成功之后查看购物车,你之前购买的东西还在
购物车中这个功能?我当时回答说要么用COOKIES,或者用SESSION,我不知道用cookies怎么实现,特别是你购物的商品列表集合怎么存放,哪位大侠能告诉我一下怎么实现
,如果嫌麻烦,给我实现的思路就OK了,小弟先谢了!

------解决方案--------------------
晕~~~~~~
没有注册就不应当让用户进入到购物页面,加个过滤器或在登入后的每一页中都判断一下用户的账号和密码,把用户屏蔽在登入页面,只有当用户输入正确的用户名和密码才能进行购物......
购物车应当放在Session中,到最后用户要结帐的时候你应当再把用户所购买的东西全都列出来,前面加个复选框,给用户一个反悔的机会,最后结账......

------解决方案--------------------
楼上说的没错!呵呵
------解决方案--------------------
建议
所有用户:
Map m1 = new HashMap();

Map m2 = new HashMap();
Map m3 = new HashMap();
Map m4 = new HashMap();

m1.put( "bag ",m2);
m1.put( "message ",m3);
m1.put( "style ",m4);

session.setAttribute( "map ",map);
到时登陆了,就把数据库的信息放入message
------解决方案--------------------
路过~
------解决方案--------------------
问你这个问题的人的思路不合理,也许他只想问你页面之间的传递方式
------解决方案--------------------
这种情况也是存在的,用户在未登录的情况下选择的自己的需要购买的商品,登录后再回到原来购物的页面,商品信息经过保存后再返回给原页面,用session或者request保存传递参数都是可以的
------解决方案--------------------
dell的网上购买电脑,就是不需要登陆的
------解决方案--------------------
yijie1206688() ( ) 信誉:100 2007-7-25 0:09:13 得分: 0



晕~~~~~~
没有注册就不应当让用户进入到购物页面,加个过滤器或在登入后的每一页中都判断一下用户的账号和密码,把用户屏蔽在登入页面,只有当用户输入正确的用户名和密码才能进行购物......
购物车应当放在Session中,到最后用户要结帐的时候你应当再把用户所购买的东西全都列出来,前面加个复选框,给用户一个反悔的机会,最后结账......

==========================================

很多购物网站都是没登录可以购物的,也可以不注册,最后就填写收获地址,网上支付。
听说大型的购物网站购物车不是用session的,性能低。

------解决方案--------------------
把购买的服务放session里不就得了
------解决方案--------------------
很多购物网站都是没登录可以购物的,也可以不注册,最后就填写收获地址,网上支付。
听说大型的购物网站购物车不是用session的,性能低。
===============================================================


我知道ASP会降低性能,因为ASP是将SESSION保存在内存中.
可是JAVA不是将session 放在cookies里吗? 如果客户端未开启cookies 功能,便加在url后面.这样做也会降低性能?



------解决方案--------------------
路过看下.

------解决方案--------------------
页面跳转到登录页面(旁边有一个注册的链接)
这一句提示你用referer,referer可以用来标识当前页面来自那个页面.

login.jsp:
<form action= "checklogin.jsp ">
...
<input type= "hidden " name= "referrer " value= " <%=request.getHeader( "referer ") " />
...

checklogin.jsp:

if(user.equals( "xxxx ") && password.equals( "yyyy "))
{
session.setAttribute( "global.user ",user);
String referrer=request.getParameter( "referrer ");
if(referrer==null || referrer.equals( " ") || referrer.equals( "null "))
referrer=request.getHeader( "referer ");
response.sendRedirect(referrer);
return;
}
else
response.sendRedirect( "index.jsp ");



------解决方案--------------------