还剩21页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
魔力商城第9天1内容回顾2课程计划、购物车实现1)在用户不登陆情况下也能够添加购物车a)购物车数据放在中b cookie3购物车功效分析、有一个购物车订单系统,表现层系统
1、后台有服务系统购物车、订单系统需要使用服务有商品服务,订单服务24工程搭建订单服务
4.1需要使用技术
4.
1.1MybatisSpringtaotao-cart-web框架整合由」严幽src/main/j avasrc/main/resources src/test/j avasrc/test/resourcesJRE SystemLibrary[JavaSE-l.7]Maven Dependencies一srcmain0webappcssimages jsWEB-INF,e jsp…[Xj web.xml.testtargetpom.xml41购物车功效5功效分析
5.1>添加商品功效1国心)先从中取购物车商品列表a cookie心心日)查看列表中是否有此商品b)假如没有,把商品添加到列表中c)假如有数量和原数量相加d、展示购物车列表2)从中取购物车列表a cookie)展示到页面b、在购物车中修改商品数量
3、删除购物车商品4购物车操作都是cookieo添加商品
5.2s-.s-.s-:e分析
5.
2.1添加商品到购物车,这个按钮是在商品详情页中(在工程中中)moli-item-web item.jsp、已总个132/aiv133/divmoli-item-web^^^®src/main/java134/li®src/main/resources4A5^^liid=choose-resuLtxdijclass=HdtMx/divdivclass=Mdd,,x/div/liL®src/test/java136®scripttype=text/javascript凸src/test/rcsources137functionaddCart138location.href=http^^fc^^alhost:8085/cart/add/${item.id}.htmlnum=+$#buy-num.val■KJRESystemLibrary\avaSE-*、、■KMavenDependenciessrc139vbmain140/script^^****^^^v\vebapp141®liid=choose-btns css143-a class=btn-appendid=InitCartUrL href=javascript:addCart eimages144clstag=shangpinIkeycountIproductIinitc/div已衿145di.v id=choose-btn-easybuy class=btn/div divVWEB-INF146id=choose-btn-divideclass=|btnM/cliv▼»jsp■147仁commons148/li eerror149/ul!--chooseend--民商品分类S3250spanclass=,,clrMX/span/div国cartjsp f151国index.js^X152153divid=previeu1546divid=spec-nlclass=jqzoomclstag=shangpinIkeycountIproductIspec-nl155imgdata-img=lwidth=**350**height=350src=n${item.images
[0]}alt=n${item.title}*jqimg=${ite1S6/div在文件中搜索“加入购物车”,即可找到按钮链接,修改成函数jsp js请求urlhttp://localhost:8085/cart/add/${item.id}.htmlnum=n+$(n#buy-numn).val()请求参数Long itemldIntnum业务逻辑)接收两个参数,从中取购物车商品列表a cookie取商品列表会得到一个商品i.list从中取购物车列表数据ii.cookie json把数据转换成iii.list)查看列表中是否有此商品b)假如没有,把商品添加到列表中c依照商品调用商品服务,查询商品信息i.id把商品信息放入购物车ii.)假如有数量和原数量相加d)把购物车信息,写回e cookie需要把转换成i.list json需要把数据转码保留ii.json设置使用期天iii.cookie5返回逻辑视图添加成功页面522Service没有返回值21•--配置艮务--22dubbS23dubbo:application name=taotao-cart-web/24dubbo:registry protocol=zookeeper address=
192.
168.
25.167:2181/I25引用内容服务126-:dubbo:reference interfacecom.taotao.service.ItemService id=T itemService“/》27/beans添加服务引用:@Servicepublic classCartService{@Value${CART_KEY}private StringCART_KEY;@Autowiredprivate ItemServiceitemService;/***添加购物车处理*pTitle:addCart/p*pDescription:/p*@param itemld*@param num*/public voidaddCartLong itemld.Integer num,HttpServletRequest request,HttpServletResponse response{〃从cookie中取取购物车列表ListTbItem list=getItemListFromCookierequest;〃查看列表中是否有此商品boolean flag=false;for Tbltemtbltem:list{//包装数据类型直接==比较不是数值if tbltem.getld==itemld.longValue{〃商品数量相加tbltem.setNumtbItem.getNum+num;flag=true;break;}〃列表中没有此商品if Eg{〃依照商品id取商品信息Tbltem item=itemService.getltemBylditemld;//设置商品数量item.setNumnum;//把对象添加到商品列表list.additem;//把购物车商品列表写入cookieCookielltils.setCoo/ierequest.,response,CART_KEY,JsonUtils.object丁Jsorlist,true;/**取购物车列表**pTitle:getItemListFromCookie/p*pDescription:/p*@param request*@return*/private ListTbItemgetItemListFromCookieHttpServletRequest request{〃从cookie中取商品列表String json=Cookielltils.getCoo/iel/atuerequest,CART_KEY,true;if StringUtils.isBLan/json{return newArrayList;//购物车不为空把~ison数据转换成java对象ListTbItem list=Jsonlltils.jsonToListjson,Tbltem.class;return list;Controller请求〔url/cart/add/itemld参数从取uii Itemld商品数量,Num,、Request Response返回值逻辑视图添加成功页面Controller@RequestMapping/cart publicclass CartController{@Autowiredprivate CartServicecartService;@RequestMapping/add/{itemldpublic StringaddCartItem@PathVariable Longitemld,Integer num,HttpServletResponse response,HttpServletRequestrequest{〃调用Service添加商品列表cartService.addCartitemld num,request,response;〃返回添加成功页面return cartSuccess;查看购物车列表
5.
35.
3.1M请求url/cart/can返回值显示购物车列表页面返回逻辑视图业务逻辑从中取购物车歹表,传递给cookie Uisp参数request532Service***取购物车列表*pTitle:getCartList/p*pDescription:/p*@param request*greturn*/public ListTbItemgetCartListHttpServletRequest request{return getItemListFromCookierequest;}533Controller@RequestMapping/cartpublic StringshowCartHttpServletRequest request{ListTbItem list=cartService.getCartListrequest;〃把购物车列表传递给页面request.setAttributecartListlist;return cart;修改购物车商品数量
5.4分析
5.
4.1请求url/cart/update/num/{itemld}/{num}参数、itemld num返回值(数据)moliResult json层
5.
4.2Service参数itemld num业务逻辑、从中取商品列表1cookie、从列表中找到商品对应商品2id、更新商品数量
3、把商品列表写回4cookie、返回5moliResult/***更新商品数量*pTitle:updateNum/p*pDescription:/pDubboZookeeperRedis能够参考工程创建moli-manager创建工程*@param itemld*@param num*@return*/public moliResultupdateNumlong itemld,int num,HttpServletRequest request,HttpServletResponse response{//取商品列表ListTbItem list=getltemListFromCookierequest;〃查询商品for Tbltemtbltem:list{if itemld==tbltem.getld{tbltem.setNumnum;break;}//把商品列表写回cookieCookielltils.setCoo/ierequestresponse,CART_KEY,JsonUtils.objectToJsonlist COOKIE_EXPIRE,true;〃返回return moliResult.o/;层
5.
4.3Controller@RequestMapping/update/num/{itemld}/{num}@ResponseBody胞Pathvariablepublic moliResultupdateNum@PathVariable Longitemld Integernum,HttpServletRequest request,HttpServletResponse response{moliResult result=cartService.updateNumitemId,num,request^response;return result;删除购物车商品
5.5分析
5.
5.
1、点击删除连接,发送一个请求,把商品传递给1id Controller、从中把购物车列表取出来2Controller cookie、然后把商品从购物车列表中删除,
3、删除之后保留到4cookie、跳转回购物车列表页面5层
5.
5.2Service参数商品id,request Response返回值:void***删除购物车商品*pTitle:deleteCartItem/p*pDescription:/p*@param itemld*@param request*@param response*/public voiddeleteCartItemLong itemldHttpServletRequest request,HttpServletResponse response{//工、从cookie中把购物车列表取出来ListTbItem list=getltemListFromCookierequest;//
2、然后把商品从购物车列表中删除,for Tbltemtbltem:list{if tbltem.getld==itemld.longValue{list,removetbltem;break;}//
3、删除之后保留到cookieCookieUtils.setCoo/ierequest,response,CART_KEY,DsonUtils.objectToJsonlist COOKIE_EXPIRE,true;Controller请求url/cart/delete/{itemld}参数itemld返回值:String@RequestMapping/delete/{itemldpublic StringdeleteCarItem@PathVariable Longitemld,HttpServletRequestrequest,HttpServletResponseresponse{cartService.deleteCartItemitemId request,response;〃返回到购物车列表页面return redirect:/cart/cart.html;怎样实现购物车商品同时
5.6添加购物车作业框架整合日日…困,taotao-order-service src/main/j ava•••日•田com.taotao.order,service\,•…田impl•••田••山j edisell entt■日…;产src/main/resources臼…巨mybati s…区SqlMapConfi g.xml,・,日“£号properti es•■••••…里db.properti es•ata••…|Pj resource,properties•■■日%3spring■appli cationContexLdao.xml applicati onContext-j edis.xml applicati onContext-servi ce.xml appli四cati onContexLtrans.xml・••…@src/test/j ava■••…src/test/resources囱国■JEE SystemLibrary[JavaSE-l.7]通田••屈Maven Dependencies必Eb;srcmainwebapp白…邑,1WEB-INFI Iiweb.xml;…a••I•“…test•・田…C31target••…[M]pom.xml HnMA*__»a r购物车订单系统
4.2表现层系统使用SpringmvcDubboZookeeper能够参考工程moli-portal-web文件
4.
2.1Pomproject xmlns=uhttp:
0.0xmlns:xsi=http://WMM.u
3.org//XMLSchema-instancexsi:schemaLocation=modelVersion
4.
0.0/modelversionparentgroupldcom.moli/groupldartifactldmoli-parent/artifactldversion
0.
0.l-SNAPSHOT/version/parentHroup工dcom,moli/Hroup1dartifactldmoli-cart-web/artifactldversion0・0,l-SNAPSHOT/versionpackagingwar/packagingdependenciesdependencygroupldcom.moli/groupldartifactldmoli-manager-pojo/artifactldversion
0.
0.1-SNAPSHOT/version/dependency!--服务接口依赖dependencygroupldcom.moli/groupldartifactldmoli-manager-interface/artifactldversion
0.
0.1-SNAPSHOT/version/dependencydependencygroupldcom.moli/groupldartifactldmoli-order-interface/artifactldversion
0.
0.1-SNAPSHOT/version!--DSP相关一)dependencygroupldjstl/groupldartifactldjstl/artifactld/dependencydependencygroupldjavax.servlet/groupIdartifactldservlet-api/artifactldscopeprovided/scope/dependencydependencygroupldjavax.servlet/groupIdartifactldjsp-api/artifactldscopeprovided/scope/dependency!--Spring--dependencygroupldorg.springframework/groupldartifactldspring-context/artifactld/dependencydependencygroupldorg.springframework/groupldartifactldspring-beans/artifactlddependencygroupldorg.springframework/groupldartifactldspring-webmvc/artifactld/dependencydependencygroupldorg.springframework/groupldartifactldspring-jdbc/artifactld/dependencydependencygroupldorg.springframework/groupldartifactldspring-aspects/artifactld/dependencydependencygroupldcom.alibaba/groupldartifactlddubbo/artifactld/dependencydependencygroupldorg.apache.zookeeper/groupldartifactIdzookeeDer/artifactId/dependencydependencygroupldcom.github.sgroschupf/groupldartifactldzkclient/artifactld/dependencydependencygroupldjunit/groupldartifactld~junit/artifactld/dependency/dependenciesbuildplugins!■■配置Tomcat插件■・plugingroupldorg.apache.tomcat.maven/groupldartifact工dtomcat7-maven-plugin/artifact工dconfigurationpath//pathport8090/port〈/configuration/plugin/plugins/build/project。
个人认证
优秀文档
获得点赞 0