1.预备知识及注意点:
2.共享技术的实现方法一
a)监听类配置
- 首先创建监听类CartSessionListen,并定义一个静态Map变量sessions用于存放在被创建的session及其对应的sessionID;
- 在web.xml中配置监听类。
public class CartSessionListen implements HttpSessionListener {
private static Map<String, HttpSession> sessions = new HashMap<String, HttpSession>();
public void sessionCreated(HttpSessionEvent sessionEvent) {
sessions.put(sessionEvent.getSession().getId(), sessionEvent.getSession());
// System.out.println("session被创建");
}
public void sessionDestroyed(HttpSessionEvent sessionEvent) {
sessions.remove(sessionEvent.getSession().getId());
// System.out.println("session被销毁");
}
public static HttpSession getSession(String sessionID) {
return sessions.get(sessionID);
}
public static void remove(String sessionid){
sessions.remove(sessionid);
}
}
<listener>
<listener-class>com.myshop.web.action.shopping.CartSessionListen</listener-class></listener>
b)Action中的逻辑处理
- 在action中,首先获取当前session,并从中获取购物车对象buyCart;
- 若无法获取buyCart,则先从cookie中获取sessionID。若存在sessionID,则从监听类CartSessionListen的静态Map变量sessions中通过该sessionID查找session。
- 若session被获取到,则从该session中获取buyCart,并从静态Map变量sessions中移除该session;(注:后面将会将获取到的buyCart加入到当前session中,而当前session在被创建时已经被加入到sessions中,下次查找的session将会是现在的当前session,而原来的session以后不会再用到,故而需将其中sessions中移除)
- 如果此时还没获取到buyCart,说明以往session中并没有创建过buyCart,所以创建新的购物车对象buyCart;
- 将buyCart加入到当前session中;
- 最后将当前sessionID加入cookie中,即加入name为字符串"sessionID"且value为当前sessionID的cookie。
BuyCart buyCart = (BuyCart)request.getSession().getAttribute("buyCart");
if(buyCart==null){
String sessionID = WebUtil.getCookieByName(request, "sessionID");
if(sessionID!=null){
HttpSession session = CartSessionListen.getSession(sessionID);
if(session!=null){
buyCart = (BuyCart)session.getAttribute("buyCart");
if(buyCart!=null)CartSessionListen.remove(sessionID);
}
}
}
if(buyCart==null){
buyCart = new BuyCart();
}
request.getSession().setAttribute("buyCart", buyCart);
WebUtil.addCookie(response, "sessionID", request.getSession().getId(),
request.getSession().getMaxInactiveInterval());
3.共享技术的实现方法二
BuyCart buyCart = (BuyCart)request.getSession().getAttribute("buyCart");
if(buyCart==null){ buyCart = new BuyCart();
request.getSession().setAttribute("buyCart", buyCart); }
WebUtil.addCookie(response, "JSESSIONID",request.getSession().getId(),
request.getSession().getMaxInactiveInterval());
分享到:
相关推荐
php新闻模块产品模块购物车模块实现
购物车模块 jsp源码 购物车模块的设计与实现
运用jsp实现的购物车模块包含添加至购物车功能,查看购物车功能,修改商品购买数量及从购物车中移除指定商品功能,清空购物车功能和收银台结账功能。
这是一个ASP.NET编写的网上购物网站中的购物车模块。
这是用JPA框架实现的,下面只有购物车的一些简单的实现。一直在更新中。。。。。。。。。。。。。
网上商城 购物车模块 jsp java j2ee
项目中购物车模块流程图 这是我么族做的!
Java Web购物车模块,做网络商城相关项目时可以作为参考。
任务7完成宠物商城的购物车功能 一、任务说明 完成宠物商城的购物车功能。 二、开发环境准备 同任务5。 三、完成过程 (1)创建相关目录存放用户相关的所有JSP文件 在mypetstore项目的WebRoo目录下创建cart目录,存放...
电子商务网站中购物车功能是否合理及安全,将直接影响网站的的发展。本实例中允许游客浏览商品,并查看商品信息,但不允许购物。只有登录的用户才可以进行购物。 注意事项 (1)用户登录后才能进入后台,否则无法对...
前台购物车模块源码前台购物车模块源码前台购物车模块源码前台购物车模块源码
购物车功能模块,商品数量变化价格跟随改变,支付功能使用支付宝的沙箱环境,包括JSP页面
某电商网站需要我们完成购物车模块的功能。具体要求:请使用tool.js中已经封装好的方法来获取元素,保证在低版本浏览器也可以执行。 现提供的项目文件有shop.html、css文件夹、js文件夹,其中,css文件夹包含shopCar...
jsp开发购物车模块源代码 可用于学习研究 2次开发
微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现微信小程序购物车实现...
自己写了一个简单购物车模块 自己写了一个简单购物车模块自己写了一个简单购物车模块自己写了一个简单购物车模块自己写了一个简单购物车模块自己写了一个简单购物车模块自己写了一个简单购物车模块自己写了一个简单...
一个购物车的实现源码(C#+.net) 一个购物车的实现源码(C#+.net)
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用!...基于ssm的天猫商城源码+项目说明(模块商品显示模块+个人中心模块+购物车模块+卡卷模块+订单模块+购买模块+忘记密码模块+地址模块+评价模块).zip
android 购物车模块...能增加删除 还有动画效果
在本实例中分别创建了保存商品信息的JavaBean---GoodsSingle和工具JavaBean---MyTools和实现购物车的JavaBean---ShopCar。