تشارك هذه المقالة رمزًا محددًا لحالة عربة التسوق Javaweb للرجوع إليه. المحتوى المحدد كما يلي
1. هيكل دليل المشروع
2. رمز المصدر
حزمة-داو طبقة: bookdao.java
package com.dao ؛ import java.util.map ؛ import com.db.db ؛ import com.domain.book ؛ public class bookdao {public map getall () {return db.getall () ؛ } كتاب عام Find (string id) {return (book) db.getall (). get (id) ؛ }}حزمة DB: DB.JAVA - قاعدة بيانات محاكاة
package com.db ؛ import java.util.linkedhashmap ؛ import java.util.map ؛ import com.domain.book ؛ import com.sun.org.apache.bcel.internal.generic.new ؛ // يمثل قاعدة البيانات // تمثل البيانات العامة db Static {map.put ("1" ، كتاب جديد ("1" ، "Javaweb Development" ، "Lao Zhang" ، 38 ، "A Good Book")) ؛ map.put ("2" ، "كتاب جديد (" 2 "،" JDBC Development "،" Lao Li "، 18 ،" كتاب جيد ")) ؛ map.put (" 3 "، كتاب جديد (" 3 "،" Ajax Development "،" Lao Tong "، 328 ،" A Book ") ؛ كتاب ")) ؛ map.put (" 5 "، كتاب جديد (" 5 "،" STRUTS Development "،" Lao Fang "، 28 ،" كتاب جيد ")) ؛ map.put (" 6 "، كتاب جديد (" 6 "،" Drings Development "،" Lao Fang "، 98 ،" A Book ")حزمة المجال:
book.java: فئة كيان كتاب
package com.domain ؛ // فئة الكيان من كتاب الفئة العامة {private string id ؛ اسم السلسلة الخاصة ؛ مؤلف سلسلة خاصة سعر مزدوج خاص ؛ وصف السلسلة الخاصة ؛ الكتاب العام () {super () ؛ // TODO Auto Constructor Stub} الكتاب العام (معرف السلسلة ، اسم السلسلة ، مؤلف السلسلة ، السعر المزدوج ، وصف السلسلة) {super () ؛ this.id = id ؛ this.name = name ؛ هذا. مؤلف = مؤلف ؛ this.price = السعر ؛ this.description = الوصف ؛ } السلسلة العامة getId () {return id ؛ } public void setId (string id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } السلسلة العامة getAuthor () {return uptor ؛ } public void setAuthor (سلسلة مؤلف) {this.author = uptor ؛ } public double getPrice () {return price ؛ } public void setPrice (price double) {this.price = price ؛ } السلسلة العامة getDescription () {return description ؛ } public void setDescription (وصف السلسلة) {this.description = description ؛ }}CART.JAVA: CART CLASS
package com.domain ؛ import java.util.linkedHashMap ؛ استيراد java.util.map ؛ // عربة التسوق التي تمثل المستخدم // عربة التسوق التي تمثل عربة الفئة العامة للمستخدم {خريطة خاصة <string ، cartitem> map = new LinkedHashMap () ؛ سعر مزدوج خاص ؛ // تذكر كم تكلفة جميع العناصر الموجودة في عربة التسوق تكلفة الفراغ العام إضافة (كتاب) {// معرفة ما إذا كان هناك أي في عربة التسوق ، وعنصر التسوق المقابل للكتاب المراد إضافته Cartitem item = map.get (book.getid ()) ؛ if (item == null) {item = new Cartitem () ؛ item.setbook (كتاب) ؛ item.setQuantity (1) ؛ map.put (book.getId () ، item) ؛ } آخر {item.setQuantity (item.getQuantity ()+1) ؛ }} الخريطة العامة <string ، cartitem> getMap () {return map ؛ } public void setMap (Map <String ، Cartitem> map) {this.map = map ؛ } public double getPrice () {double totalPrice = 0 ؛ for (map.entry <string ، cartitem> intrad: map.entryset ()) {cartitem item = intply.getValue () ؛ TotalPrice += item.getPrice () ؛ } this.price = TotalPrice ؛ سعر الإرجاع } public void setPrice (price double) {this.price = price ؛ }}Cartitem.java: عنصر التسوق
package com.domain ؛ // تستخدم لتمثيل منتج معين وعدد المرات التي يظهر فيها (عناصر التسوق) Cartitem {كتاب خاص للكتاب ؛ كمية الباحث الخاص ؛ سعر مزدوج خاص ؛ getBook Book Book () {Return Book ؛ } public void setbook (book book) {this.book = book ؛ } public int getQuantity () {return Quantity ؛ } public void setquantity (int Quantity) {this.quantity = Quantity ؛ this.price = this.book.getPrice () * this.quantity ؛ } public double getPrice () {return price ؛ } public void setPrice (price double) {this.price = price ؛ }}حزمة الخدمة: طبقة الخدمة
الأعمال التجارية. جافا:
package com.service ؛ import java.util.map ؛ import com.dao.bookdao ؛ import com.domain.book ؛ import com.domain.cart ؛ import com.domain.cartItem ؛ // business class ، يقدم جميع الخدمات إلى طبقة الويب بطريقة موحدة للطبقة العامة الخريطة العامة getAllBook () {return dao.getall () ؛ } كتاب عام Findbook (معرف السلسلة) {return dao.find (id) ؛ } // حذف عناصر التسوق في عربة التسوق Public void deletecartitem (string id ، عربة التسوق) {cart.getMap (). إزالة (معرف) ؛ }. } // تغيير عدد عناصر التسوق public void changeItemQuantity (معرف السلسلة ، كمية السلسلة ، عربة التسوق) {cartitem item = cart.getMap (). get (id) ؛ item.setQuantity (integer.parseint (الكمية)) ؛ }}طبقة الويب:
ListbookServlet.java: عرض جميع الكتب
package com.web.controller ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد java.util.map ؛ استيراد javax.servlet.servletexception ؛ import javax.servlet.http.httpservlet ؛ import javax.servlet.htttp.htttplet javax.servlet.http.httpservletresponse ؛ استيراد com.service.businessservice ؛ // الحصول على جميع الكتب // الحصول على جميع الكتب قوائم الفصول العامة يمتد httpservlet الخدمات التجارية () ؛ خريطة الخريطة = service.getAllBook () ؛ request.setAttribute ("Map" ، MAP) ؛ request.getRequestDispatcher ("/web-inf/jsp/listbook.jsp"). } public void dopost (httpservletrequest request ، httpservletresponse) يلقي servletexception ، ioException {doget (request ، response) ؛ }}buyservlet.java: معالجة طلبات الشراء
package com.web.controller ؛ import java.io.ioException ؛ import javax.servlet.servletexception ؛ import javax.servlet.http.httpservlet ؛ import javax.servlet.http.httpservletRequest ؛ com.domain.cart ؛ import com.service.businessservice ؛ // اكتمال شراء الكتاب // الكاملة للكتاب شراء الفئة العامة بويسفيليت يمتد httpservlet {public void dogge (httpservletrequest request ، httpservletresponse) رمي servlexception ، ioexception خدمة الخدمات التجارية = خدمات الأعمال الجديدة () ؛ كتاب كتاب = service.findbook (id) ؛ // احصل على عربة التسوق الخاصة بالمستخدم = (CART) request.getSession (). getAttribute ("CART") ؛ if (cart == null) {cart = new cart () ؛ request.getSession (). setAttribute ("cart" ، cart) ؛ } // أضف الكتاب إلى عربة التسوق الخاصة بالمستخدم وإكمال شراء CART.ADD (كتاب) ؛ //response.sendRedirect("/web-inf/jsp/listcart.jsp ") ؛ request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). } public void dopost (httpservletrequest request ، httpservletresponse) يلقي servletexception ، ioException {doget (request ، response) ؛ }}deleteItemServlet.java: احذف منتجًا معينًا
package com.web.controller ؛ استيراد java.io.ioException ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ import javax.servlet.http.httpservled com.service.businessservice ؛ // حذف عنصر التسوق المحدد من الفئة العامة DeleteItemServlet يمتد httpservlet {public void dogge (httpservletrequest request ، httpservletponse respress) ؛ CART CART = (CART) request.getSession (). getAttribute ("cart") ؛ خدمة الخدمات التجارية = خدمات الأعمال الجديدة () ؛ service.deletecartitem (id ، cart) ؛ // delete request.getRequestDispatcher بنجاح ("/web-inf/jsp/listcart.jsp"). } public void dopost (httpservletrequest request ، httpservletresponse) يلقي servletexception ، ioException {doget (request ، response) ؛ }}ClearCartServlet.java: مسح العربة
package com.web.controller ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ استيراد javax.servlet.http.httpletrequest ؛ javax.servlet.http.httpservletresponse ؛ استيراد com.domain.cart ؛ استيراد com.service.businessservice ؛ request.getSession (). getAttribute ("cart") ؛ خدمة الخدمات التجارية = خدمات الأعمال الجديدة () ؛ service.clearcart (cart) ؛ request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). } public void dopost (httpservletrequest request ، httpservletresponse) يلقي servletexception ، ioException {doget (request ، response) ؛ }}changequantityservlet.java: تعديل كمية المنتجات المحددة في عربة التسوق
package com.web.controller ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ استيراد javax.servlet.http.httpletrequest ؛ javax.servlet.http.httpservletresponse ؛ استيراد com.domain.cart ؛ استيراد com.service.businessservice ؛ ioException {string id = request.getParameter ("id") ؛ كمية السلسلة = request.getParameter ("الكمية") ؛ CART CART = (CART) request.getSession (). getAttribute ("cart") ؛ خدمة الخدمات التجارية = خدمات الأعمال الجديدة () ؛ service.ChangeItemQuantity (id ، الكمية ، العربة) ؛ request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). } public void dopost (httpservletrequest request ، httpservletresponse) يلقي servletexception ، ioException {doget (request ، response) ؛ }}صفحة JSP:
webroot/web-inf/jsp/listbook.jsp: عرض قائمة الكتب
<٪@ page language = "java" import = "java.util. Transitional // en "> <html> <head> <title> صفحة قائمة الكتاب </title> </head> <body style =" text-align: center "> <h1> قائمة كتاب </h1> <table> <ttr> <td> عنوان الكتاب </td> <td> مؤلف </td> </tr> <c: foreach var = "intpl" عناصر = "$ {map}"> <tr> <td> $ {entry.value.name} </td> <td> $ {intern.value.author} </td> $ {intrad.value.price} </td> <td> <a href = "$ {pagecontext.request.contextpath}/servlet/buyservlet؟ id = $ {interpt.value.id}" rel = "external nofollow" target = "_ blank"> buy </a>webroot/web-inf/jsp/listcart.jsp: عرض قائمة عربة التسوق
<٪@ page language = "java" import = "java.util. Transitional // en "> <html> <head> <title> قائمة السيارة </title> <script type =" text/javaScript "> وظيفة deleteitem (id) {var b = window.confirm (" هل تؤكد الحذف؟ ") ؛ if (b) {window.location.href = "$ {pagecontext.request.contextpath}/servlet/deleteItemServlet؟ id =" rel = "nofollow" +id ؛ }} وظيفة clearCart () {var b = window.confirm ("هل أكدت المقاصة ؟؟") ؛ if (b) {window.location.href = "$ {pagecontext.request.contextpath}/servlet/clearCartServlet" rel = "nofollow الخارجي" ؛ }} function changeQuantity (input ، id ، oldvalue) {var quate = input.value ؛ // احصل على الرقم المراد تعديله SDFSFS /* // input.value = oldvalue ؛ يعود؛ } *// // تحقق مما إذا كان عدد إدخال المستخدم هو عدد صحيح موجب إذا (الكمية <0 || الكمية! = parseint (الكمية)) {Alert ("الرجاء إدخال عدد صحيح موجب !!") ؛ input.value = oldvalue ؛ يعود؛ } var b = window.confirm ("أنت تؤكد أن عدد الكتب تم تعديلها إلى:" + كمية) ؛ if (b) {window.location.href = "$ {pagecontext.request.contextpath}/servlet/changeQuantityServlet؟ id =" rel = "severonal nofollow" + id + "& Quantity =" + Quantity ؛ }} </script> </head> <body style = "text-align: center"> <h1> قائمة عربة التسوق </h1> <c: if test = "$ {{cart.map)}"> لم تشتري أي عناصر! ! ! </c: if> <c: if test = "$ {! frank (cart.map)}}"> <table> <tr> <td> <td> عنوان الكتاب </td> <td> المؤلف </td> <td> سعر الوحدة </td> var = "intpl" عناصر = "$ {cart.map}"> <tr> <td> $ {entry.value.book.name} </td> <td> $ {interpt.value.book.author} </td> <td> $ {intern.value.book.price} value = "$ {interpt.value.quantity}" onChange = "changeQuantity (this ، $ {interpt.key} ، $ {interpt.value.quantity})"> </td> <td> $ {entry.value.price} </td> <a href = rel = "nofollow الخارجي" onClick = "deleteItem ($ {intern.key})"> حذف </a> <!-قم بإزالة السلوك الافتراضي للربط التشعبية-> </td> </td> </c: foreach> <ttr> <td colspan = "3"> السعر الإجمالي </td> <td colspan = "1"> <a href = "javaScript: void (0)" rel = "nofollow external" rel = "خارجي nofollow" onClick = "clearCart ()"ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.