day79_淘淘商城项目_12_购物车流程 + 商城购物车系统的搭建 + 商城购物车系统的实现分析 + 购物车实现增删改查_匠心笔记

文章目录 1、购物车流程 1.1、以前的购物车流程 1.2、现在的购物车流程 2、商城购物车系统的搭建 2.1、购物车系统的架构 2.2、服务层工程搭建 2.3、表现层工程搭建 3、商城购物车系统的实现分析 3.1、购物车如何表示? 3.2、怎么将购物车存入cookie中? 3.3、使用哪种redis数据结构存放购物车? 3.4、创建POJO 4、商城购物车系统实现的准备工作 4.1、修改所有登录注册的url 4.2、修改所有回显用户名的url 4.3、修改所有安全退出的url 5、实现登录与未登录状态下添加商品到购物车 5.1、导入静态资源 5.2、修改商品详情页 5.3、登录状态下添加购物车 5.4、未登录状态下添加购物车 6、实现登录与未登录状态下展示购物车列表 6.1、功能分析 6.2、dao层 6.3、service层 6.4、发布服务与引用服务 6.5、Controller 6.6、访问测试 7、实现登录与未登录状态下更新购物车的商品数量 7.1、更新购物车的商品数量的js分析 7.2、dao层 7.3、service层 7.4、发布服务与引用服务 7.5、Controller 7.6、访问测试 8、实现登录与未登录状态下删除购物车中的商品 8.1、功能分析 8.2、dao层 8.3、service层 8.4、发布服务与引用服务 8.5、Controller 8.6、访问测试 课程计划 1、购物车的流程 2、购物车的实现 a) 登录状态下的购物车实现 b) 未登录状态下的购物车实现 回到顶部 1、购物车流程 1.1、以前的购物车流程 用户将商品添加到购物车时,判断用户是否登录,如果已经登录将购物车放入session中。 存在的问题:   购物车使用了session,而session是存在于内存资源中,消耗了大量的内存资源。非常不好。   购物车存在session当中,如果session销毁(浏览器关闭),购物车就没有了。   session无法共享,无法进行水平扩展。     解决方案:给购物车做持久化。     持久化,需要用到数据库(把数据存储到服务端,较安全)。     a、mysql数据库(数据完整性比较好)     b、redis数据库(读写速度快)   用户未登录的时候不能添加购物车。     解决方案:未登录的状态下,可以把购物车放在cookie中。   在不登陆的情况下添加购物车。把购物车信息写入cookie。(数据保存在客户端,数据完整性差)。   优点:     1、不占用服务端存储空间。     2、用户体验好。     3、代码实现简单。   缺点:     1、cookie中保存的容量有限。最大4k。     2、把购物车信息保存在cookie中,更换设备购物车信息不能同步。   这里我们不使用这种方法。 1.2、现在的购物车流程 对于未登陆用户,将购物车放到cookie中。对于已登陆用户将购物车放入redis缓存中。可以实现,用户未登录或者登录状况下的添加购物车(并进行购物车的增删查改)。 回到顶部 2、商城购物车系统的搭建 2.1、购物车系统的架构 购物车系统架构: taotao-cart(pom聚合工程)   |--taotao-cart-interface(jar)   |--taotao-cart-Service(war) taotao-cart-web(war) 可以参考taotao-manager、taotao-manager-web创建。 2.2、服务层工程搭建 2.2.1、taotao-cart taotao-cart打包方式pom。 可以参考taotao-manager工程的创建。 New --> Maven Project --> 不使用骨架创建工程 --> Next pom.xml 4.0.0 com.taotao taotao-parent 0.0.1-SNAPSHOT taotao-cart pom com.taotao taotao-common 0.0.1-SNAPSHOT org.apache.tomcat.maven tomcat7-maven-plugin 8089 / 2.2.2、taotao-cart-interface New --> Other--> Maven Module --> 不使用骨架创建 千万不要创建成Maven Project。 taotao-cart-interface打包方式jar。 pom.xml 4.0.0 com.taotao taotao-cart 0.0.1-SNAPSHOT taotao-cart-interface com.taotao taotao-manager-pojo 0.0.1-SNAPSHOT 2.2.3、taotao-cart-service New --> Other--> Maven Module --> 不使用骨架创建 千万不要创建成Maven Project。 taotao-cart-service打包方式war。 pom.xml 4.0.0 com.taotao taotao-cart 0.0.1-SNAPSHOT taotao-cart-service war com.taotao taotao-manager-dao 0.0.1-SNAPSHOT com.taotao taotao-cart-interface 0.0.1-SNAPSHOT org.springframework spring-context org.springframework spring-beans org.springframework spring-webmvc org.springframework spring-jdbc org.springframework spring-aspects org.springframework spring-jms org.springframework spring-context-support com.alibaba dubbo spring org.springframework netty org.jboss.netty org.apache.zookeeper zookeeper com.github.sgroschupf zkclient redis.clients jedis org.apache.maven.plugins maven-surefire-plugin true 由于没有web.xml,打包方式为war的项目会报错。 右键项目taotao-cart-service --> Java EE Tools --> Generate … xxx,会自动帮我们生成web.xml, 在web.xml中配置spring的监听器,内容如下: web.xml taotao-cart-service index.jsp contextConfigLocation classpath:spring/applicationContext*.xml org.springframework.web.context.ContextLoaderListener 2.2.4、框架整合 将taotao-manager-service的src/main/resources下的配置文件全部复制到taotao-cart-service的src/main/resources中 删除或清空与数据库相关的配置文件,因为购物车主要使用redis缓存,所以需要将redis的工具类添加进来: 修改applicationContext-service.xml中spring注解包扫描的类与dubbo暴露服务的端口: 在taotao-cart-interface工程的src/main/java中创建com.taotao.cart.service包; 在taotao-cart-service工程的src/main/java中创建com.taotao.cart.service.impl包。 2.3、表现层工程搭建 2.3.1、taotao-cart-web 表现层为一个单独的工程,所以需要创建Maven Project。 New --> Maven Project 千万不要创建成Maven Module。 taotao-cart-web的打包方式是war。 pom.xml 4.0.0 com.taotao taotao-parent 0.0.1-SNAPSHOT taotao-cart-web war com.taotao taotao-common 0.0.1-SNAPSHOT com.taotao taotao-manager-interface 0.0.1-SNAPSHOT org.springframework spring-context org.springframework spring-beans org.springframework spring-webmvc org.springframework spring-jdbc org.springframework spring-aspects org.springframework spring-jms org.springframework spring-context-support jstl jstl javax.servlet servlet-api provided javax.servlet jsp-api provided commons-fileupload commons-fileupload com.github.pagehelper pagehelper com.alibaba dubbo spring org.springframework netty org.jboss.netty org.apache.zookeeper zookeeper com.github.sgroschupf zkclient junit junit org.apache.tomcat.maven tomcat7-maven-plugin 8090 / org.apache.maven.plugins maven-surefire-plugin true web.xml
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信