{/'title/':/'商品展示、购物车管理和订单提交功能模块的后端处理逻辑/',/'description/':/'该代码段是一个Java类,包含了多个方法,每个方法都用于处理不同的功能模块,主要实现了商品展示、购物车管理和订单提交等功能模块的后端处理逻辑。/',/'keywords/':/'商品展示, 购物车管理, 订单提交, Java, Servlet, 后端处理, PcodeService, ProductService/',/'content/':/'public//u0020void//u0020indexFloor//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//n//t//t//t//tthrows//u0020ServletException,//u0020IOException//u0020{//n//n//t//tPcodeService//u0020service//u0020=new//u0020PcodeService//(//);//n//t//tList//u003CPcode//u003E//u0020floorInfo=service.getFloorInfo//(/'4/'//);//n//t//tString//u0020jsonString//u0020=//u0020JSON.toJSONString//(floorInfo//);//n//t//tresp.getWriter//(//).write//(jsonString//);//n//t}//n//tpublic//u0020void//u0020hotProduct//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//n//t//t//t//tthrows//u0020ServletException,//u0020IOException//u0020{//n//n//t//tList//u003CFloorVo//u003E//u0020hotProducts=service.findFloorsHotProducts//(0,12//);//n//t//tString//u0020jsonString//u0020=JSON.toJSONString//(hotProducts//);//n//t//tresp.getWriter//(//).write//(jsonString//);//n//t}//n//tpublic//u0020void//u0020navigationBar//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//n//t//t//t//tthrows//u0020ServletException,//u0020IOException//u0020{//n//n//t//tProductService//u0020service//u0020=new//u0020ProductService//(//);//n//t//tList//u003CCategory//u003E//u0020categories//u0020=//u0020service.navigationBar//(//);//n//t//tString//u0020jsonString//u0020=//u0020JSON.toJSONString//(categories//);//n//t//tresp.getWriter//(//).write//(jsonString//);//n//t}//n//tpublic//u0020void//u0020productListByCid//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//n//t//t//t//tthrows//u0020ServletException,//u0020IOException//u0020{//n//t//tString//u0020cid=req.getParameter//(/'cid/'//);//n//t//tString//u0020currentPageStr//u0020=req.getParameter//(/'currentPage/'//);//n//t//tint//u0020currentPage=1;//n//t//tif//(currentPageStr!=null//u0020&&//u0020!/'//u0026quot;.equals//(currentPageStr//)//){//n//t//t//tcurrentPage//u0020=Integer.valueOf//(currentPageStr//);//n//t//t}//n//t//tProductService//u0020service=new//u0020ProductService//(//);//n//t//tPageBean//u003CProduct//u003E//u0020pageBean=service.findProductListByCid//(cid,currentPage,pageSize//);//n//t//treq.setAttribute//(/'pageBean/',pageBean//);//n//t//tSystem.out.println//(/'ProductListByCidServlet.doGet-pageBean: /'//u0020+pageBean//);//n//t//tList//u003CProduct//u003E//u0020hisProductList=new//u0020ArrayList//u003CProduct//u003E//(//);//n//t//tCookie[]//u0020cookies=req.getCookies//(//);//n//t//tif//(cookies!=null//)//{//n//t//t//tfor//(Cookie//u0020cookie:cookies//)//{//n//t//t//t//tString//u0020name//u0020=cookie.getName//(//);//n//t//t//t//tif//(/'pids/'.equals//(name//)//){//n//t//t//t//t//tString//u0020pids=cookie.getValue//(//);//n//t//t//t//t//tString[]//u0020pidArr=pids.split//(/'////&/'//);//n//t//t//t//t//tfor//(String//u0020pid:pidArr//)//{//n//t//t//t//t//t//tProduct//u0020product=service.productInfo//(pid//);//n//t//t//t//t//t//thistProductList.add//(product//);//n//t//t//t//t//t}//n//t//t//t//t//tbreak;//n//t//t//t//t}//n//t//t//t}//n//t//t}//n//t//treq.setAttribute//(/'hisProductList/',hisProductList//);//n//t//treq.getRequestDispatcher//(/'product_list.jsp/'//).forward//(req,resp//);//n//t}//n//tpublic//u0020void//u0020productInfo//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//n//t//t//t//tthrows//u0020ServletException,//u0020IOException//u0020{//n//t//tString//u0020pid=req.getParameter//(/'pid/'//);//n//t//tProductService//u0020service=new//u0020ProductService//(//);//n//t//tProduct//u0020product=service.productInfo//(pid//);//n//t//treq.setAttribute//(/'product/',product//);//n//t//tString//u0020pids//u0020=pid;//n//t//tCookie[]//u0020cookies=req.getCookies//(//);//n//n//t//tif//(cookies!=null//)//{//n//t//t//tfor//(Cookie//u0020cookie//u0020://u0020cookies//)//u0020{//n//t//t//t//tString//u0020name=cookie.getName//(//);//n//t//t//t//tif//(/'pids/'.equals//(name//)//){//n//t//t//t//t//tpids//u0020=cookie.getValue//(//);//n//t//t//t//t//t//有名为pids这个cookie,则获取其存储的值,//n//t//t//t//t//t/*每次在原值的前面拼接这一次访问的pid//n//t//t//t//t//t原则是:1)将最新访问的放在最前面.//n//t//t//t//t//t//t例如:如果获取的cookie值为 1,2,3 则商品访问顺序为先访问的3-->2-->1,//n//t//t//t//t//t//t即最新一次访问商品ID是1//n//t//t//t//t//t//t2)如果有重复商品,则先将字符串中重复的ID删除,再将该重复的放在最前面//n//t//t//t//t//t//t例如:如果获取的cookie值为 1,2,3//n//t//t//t//t//t//t该次访问的pid=2,则拼接完成后应该是2,1,3//n//t//t//t//t//t *///n//t//t//t//t//tString[]//u0020pidArr=pids.split//(/'////&/'//);//n//t//t//t//t//tList//u003CString//u003E//u0020asList//u0020=//u0020Arrays.asList//(pidArr//);//n//t//t//t//t//tLinkedList//u003CString//u003E//u0020linkedList=new//u0020LinkedList//u003CString//u003E//(asList//);//n//t//t//t//t//tlinkedList.remove//(pid//);//n//t//t//t//t//tlinkedList.addFirst//(pid//);//n//t//t//t//t//tStringBuffer//u0020sb=new//u0020StringBuffer//(//);//n//t//t//t//t//tfor//(int//u0020i=0;i//u003ClinkedList.size//(//);i++//)//{//n//t//t//t//t//t//tif//(i//u003E0//)//{//n//t//t//t//t//t//t//tsb.append//(/'////&/'//);//n//t//t//t//t//t//t}//n//t//t//t//t//t//tsb.append//(linkedList.get//(i//)//);//n//t//t//t//t//t}//n//t//t//t//t//tpids=//u0020sb.toString//(//);//n//t//t//t//t//tbreak;//n//t//t//t//t}//n//t//t//t}//n//t//t}//n//t//tCookie//u0020cookie=new//u0020Cookie//(/'pids/',pids//);//n//t//tresp.addCookie//(cookie//);//n//n//t//treq.getRequestDispatcher//(/'product_info.jsp/'//).forward//(req,resp//);//n//t}//n//tpublic//u0020void//u0020addCart//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//){//n//t//ttry{//n//t//t//tString//u0020pid=req.getParameter//(/'pid/'//);//n//t//t//tString//u0020buyNumStr=req.getParameter//(/'buyNum/'//);//n//t//t//tint//u0020buyNum=1;//n//t//t//tif//(buyNumStr!=null&&!/'//u0026quot;.equals//(buyNumStr//)//){//n//t//t//t//tbuyNum=Integer.valueOf//(buyNumStr//);//n//t//t//t}//n//t//t//tif//(buyNum//u003C1//)//{//n//t//t//t//treturn;//n//t//t//t}//n//t//t//tCart//u0020cart=//(Cart//)req.getSession//(//).getAttribute//(/'cart/'//);//n//t//t//tif//(cart==null//)//{//n//t//t//t//tProduct//u0020product=service.productInfo//(pid//);//n//t//t//t//tCartItem//u0020cartItem=new//u0020CartItem//(product,buyNum//);//n//t//t//t//tMap//u003CString,CartItem//u003E//u0020cartItems=new//u0020HashMap//u003C//u003E//(//);//n//t//t//t//tcartItems.put//(pid,cartItem//);//n//t//t//t//tcart//u0020=new//u0020Cart//(cartItems//);//n//n//t//t//t}//n//t//t//telse{//n//t//t//t//tMap//u003CString,CartItem//u003E//u0020cartItems=cart.getCartItems//(//);//n//t//t//t//tProduct//u0020product//u0020=//u0020service.productInfo//(pid//);//n//t//t//t//tCartItem//u0020cartItem=cartItems.get//(pid//);//n//t//t//t//tif//(cartItem==null//)//{//n//t//t//t//t//tcartItem=new//u0020CartItem//(product,buyNum//);//n//t//t//t//t//tcartItems.put//(pid,cartItem//);//n//t//t//t//t//tcart//u0020=new//u0020Cart//(cartItems//);//n//t//t//t//t}//n//t//t//t//telse{//n//t//t//t//t//tint//u0020oldNum=cartItem.getBuyNum//(//);//n//t//t//t//t//tcartItem.setBuyNum//(//u0020oldNum//u0020+//u0020buyNum//);//n//t//t//t//t//tcartItems.put//(pid,cartItem//);//n//t//t//t//t}//n//t//t//t//tcart//u0020=new//u0020Cart//(cartItems//);//n//t//t//t}//n//t//t//treq.getSession//(//).setAttribute//(/'cart/',cart//);//n//t//t//tresp.sendRedirect//(req.getContextPath//(//)+/'/cart.jsp/'//);//n//t//t}catch//u0020(Exception//u0020e//){//n//t//t//te.printStackTrace//(//);//n//t//t}//n//t}//n//t////t//t删除购物项//n//tpublic//u0020void//u0020delCart//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//n//t//t//t//tthrows//u0020IOException//u0020{//n//t//tHttpSession//u0020session=req.getSession//(//);//n//t//tCart//u0020cart=//(Cart//)session.getAttribute//(/'cart/'//);//n//t//tif//(cart!=null//)//{//n//t//t//tMap//u003CString,CartItem//u003E//u0020cartItems//u0020=//u0020cart.getCartItems//(//);//n//t//t//tString//u0020pid=req.getParameter//(/'pid/'//);//n//t//t//tcartItems.remove//(pid//);//n//t//t//tcart=new//u0020Cart//(cartItems//);//n//t//t//tsession.setAttribute//(/'cart/',cart//);//n//t//t}//n//t//t//tresp.sendRedirect//(req.getContextPath//(//)+/'/cart.jsp/'//);//n//t}//n//t////t//t清空购物车//n//tpublic//u0020void//u0020clearCart//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//u0020{//n//t//tHttpSession//u0020session=req.getSession//(//);//n//t//tsession.removeAttribute//(/'cart/'//);//n//t//tSystem.out.println//(/'ProductServlet.clearCart/'+session.getAttribute//(/'cart/'//));//n//t//t////t//tresp.sendRedirect//(req.getContextPath//(//)+/'/cart.jsp/'//);//n//t//ttry//u0020{//n//t//t//treq.getRequestDispatcher//(/'/cart.jsp/'//).forward//(req,resp//);//n//t//t}catch//u0020(Exception//u0020e//)//u0020{//n//t//t//te.printStackTrace//(//);//n//t//t//tthrow//u0020new//u0020RuntimeException//(e//);//n//t//t}//n//t}//n//t////t//t提交订单//n//tpublic//u0020void//u0020submitOrder//(HttpServletRequest//u0020req,//u0020HttpServletResponse//u0020resp//)//n//t//t//t//tthrows//u0020ServletException,//u0020IOException//u0020{//n//t//tHttpSession//u0020session//u0020=//u0020req.getSession//(//);//n//t//t////u0020验证用户是否登录//n//t//tUser//u0020user//u0020=//u0020(User)//u0020session.getAttribute//(/'user/'//);//n//t//tif//u0020(user//u0020==//u0020null)//u0020{//n//t//t//t////u0020未登录状态//n//t//t//tresp.sendRedirect//(req.getContextPath//(//)//u0020+//u0020/'/login.jsp/'//);//n//t//t//treturn;//n//t//t}//n//t//t////u0020获取购物车//n//t//tCart//u0020cart//u0020=//u0020(Cart)//u0020session.getAttribute//(/'cart/'//);//n//t//t////u0020创建Order对象//n//t//tOrder//u0020order//u0020=//u0020new//u0020Order//(//);//n//t//t////u0020属性封装//n//t//t////u0020订单编号//n//t//torder.setOid//(CommonUtil.generateUUID//(//)//);//n//t//t////u0020总金额,从购物车中获取//n//n//t//t////u0020处理详细逻辑(省略)//n//t//torder.setTotal//(cart.getTotal//(//)//);//n//t//t////u0020设置购买用户//n//t//torder.setUser//(user//);//n//n//t//t////u0020设List//u003COrderItem//u003E//u0020orderitems;//n//t//tList//u003COrderItem//u003E//u0020orderitems//u0020=//u0020new//u0020ArrayList//u003C//u003E//(//);//n//t//t////u0020从购物车中获取CartItem转成OrderItem//n//t//tMap//u003CString,CartItem//u003E//u0020cartItems//u0020=//u0020cart.getCartItems//(//);//n//t//tSet//u003CString//u003E//u0020keyset=//u0020cartItems.keySet//(//);//n//t//tfor//u0020(String//u0020pid://u0020keyset//)//u0020{//n//t//t//t////u0020得到每一个购物项//n//t//t//tCartItem//u0020cartItem//u0020=//u0020cartItems.get//(pid//);//n//t//t//t////u0020准备OrderItem,从CartItem转换数据//n//t//t//tOrderItem//u0020orderitem//u0020=//u0020new//u0020OrderItem//(//);//n//t//t//t////u0020private//u0020String//u0020itemid;//n//t//t//torderitem.setItemid//(CommonUtil.generateUUID//(//)//);//n//t//t//t////u0020private//u0020int//u0020count;//购买的数量//n//t//t//torderitem.setCount//(cartItem.getBuyNum//(//)//);//n//t//t//t////u0020private//u0020double//u0020subtotal;//小计//n//t//t//torderitem.setSubtotal//(cartItem.getSubToal//(//)//);//n//t//t//t////u0020private//u0020Product//u0020product;//该项中购买的商品对象//n//t//t//torderitem.setProduct//(cartItem.getProduct//(//)//);//n//t//t//t////u0020private//u0020Order//u0020order;//n//t//t//torderitem.setOrder//(order//);//n//t//t//torderitems.add//(orderitem//);//n//t//t//t////u0020将订单项存入到order中的订单项的集合中//n//t//t}//n//t//torder.setOrderItems//(orderitems//);//n//t//tresp.sendRedirect//(req.getContextPath//(//)//u0020+//u0020/'/order_info.jsp/'//);//n//t}/n}/


原文地址: https://www.cveoy.top/t/topic/p8PO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录