이 기사는 참조를 위해 Javaweb 쇼핑 카트 케이스의 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
1. 프로젝트 디렉토리 구조
2. 소스 코드
패키지-DAO 레이어 : BookDao.java
패키지 com.dao; import java.util.map; import com.db.db; import com.domain.book; public class bookdao {public map getall () {return db.getall (); } public book 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.bcel.internal.generic.new; // 데이터베이스 공개 클래스 DB를 나타냅니다. static {map.put ( "1", 새 책 ( "1", "Javaweb Development", "Lao Zhang", 38, "좋은 책")); Map.put ( "2", "새 책 ("2 ","JDBC Development ","Lao Li ", 18,"A Good Book "); Map.put ("3 ", New Book ("3 ","Ajax Development ","Lao Tong ", 328,"좋은 책 ")); Map.put ("4 ","4 ",", ",", ",", ",", ","4 " book "); map.put ("5 ", 새 책 ("5 ","Struts Development ","Lao Fang ", 28,"Good Book "); Map.put ("6 ", 새 책 ("6 ","Spring Development ","Lao Fang ", 98,"좋은 책 ");도메인 패키지 :
book.java : 책의 엔티티 클래스
package com.domain; // 책의 엔티티 클래스 공개 클래스 책 {private String id; 개인 문자열 이름; 개인 문자열 저자; 개인 이중 가격; 개인 문자열 설명; public book () {super (); // TODO 자동 생성 생성자 Stub} 공개 북 (문자열 ID, 문자열 이름, 문자열 작성자, 이중 가격, 문자열 설명) {super (); this.id = id; this.name = 이름; this.author = 저자; this.price = 가격; this.description = 설명; } public String getId () {return id; } public void setId (String id) {this.id = id; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public String getAuthor () {return awork. } public void setAuthor (문자열 저자) {this.author = 저자; } public double getPrice () {반환 가격; } public void setPrice (이중 가격) {this.price = 가격; } public String getDescription () {return description; } public void setDescription (문자열 설명) {this.Description = 설명; }}Cart.java : 쇼핑 카트 클래스
패키지 com.domain; import java.util.linkedhashmap; import java.util.map; // 사용자를 나타내는 쇼핑 카트 // 사용자 공개 클래스 카트를 나타내는 쇼핑 카트 {private map <string, cartitem> map = new LinkedHashMap (); 개인 이중 가격; // 쇼핑 카트의 모든 항목이 공개적으로 공개적으로 Add (책) {// 쇼핑 카트에 있는지 확인하고 책에 해당하는 쇼핑 항목이 추가 될 책 항목 = map.get (book.getId ()); if (item == null) {item = new Cartitem (); item.setbook (책); item.setquantity (1); map.put (book.getid (), 항목); } else {item.setQuantity (item.getQuantity ()+1); }} public map <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> entry : map.entryset ()) {cartitem item = entry.getValue (); TotalPrice += item.getPrice (); } this.price = TotalPrice; 귀환 가격; } public void setPrice (이중 가격) {this.price = 가격; }}Cartitem.java : 쇼핑 아이템
Com.Domain; // 특정 제품을 나타내는 데 사용되는 // 공개 클래스 Cartitem {Private Book Book; 개인 int 수량; 개인 이중 가격; 공개 책 getbook () {반환 책; } public void setbook (Book Book) {this.book = book; } public int getQuantity () {return retity; } public void setquantity (int reter) {this.quantity = voten. this.price = this.book.getPrice () * this.quantity; } public double getPrice () {반환 가격; } public void setPrice (이중 가격) {this.price = 가격; }}서비스 패키지 : 서비스 계층
businessservice.java :
패키지 com.service; import java.util.map; import com.dao.bookdao; import com.domain.book; import com.domain.cart; import com.domain.cartitem; // 비즈니스 클래스, 통일 된 방식으로 모든 서비스를 공개 클래스 비즈니스 서비스 제공 {private bookdao dao = new bookdao (); 공개지도 getAllbook () {return dao.getall (); } public book findbook (String id) {return dao.find (id); } // 쇼핑 카트에서 쇼핑 품목 삭제 공개 void deletecartitem (String id, cart cart) {cart.getMap (). 제거 (id); } // 쇼핑 카트 공개 공개 void clearcart (cart) {cart.getMap (). clear (); } // 쇼핑 품목의 수량 변경 공개 void changeItemquantity (문자열 ID, 문자열 수량, 카트 카트) {cartitem 항목 = cart.getMap (). get (id); item.setquantity (integer.parseint (수량)); }}웹 계층 :
LESTBOOKSERVLET.JAVA : 모든 책을 보여줍니다
package com.web.controller; import java.io.ioexception; import java.io.printwriter; import java.util.map; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpequestrequestrequestrequestrequestrequestrecepectrectrectrectpectp.htttp.http.http.http.http.http.http.http.http.http. javax.servlet.http.httpp.httpervletresponse; import com.service.businessservice; // 모든 책을 가져 오기 // 모든 책을 가져 오기 // 공개 클래스 LESTBOOKSERVLET가 httpservlet {public void doget (httpservletrequest request, httpservletresponse 응답) servletex, ikoexcement {newservice vocnorine {httpservletrequest request). BusinessService (); 지도 맵 = service.getallbook (); request.setAttribute ( "지도",지도); request.getRequestDisPatcher ( "/web-inf/jsp/listbook.jsp"). FORMAR (요청, 응답); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {doget (요청, 응답); }}Buyservlet.java : 구매 요청 처리
package com.web.controller; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpervletrespronge; com.domain.cart; import com.service.businessservice; // 책 구매 완료 // 책 구매 완전 책 구매 공개 클래스 Buyservlet 확장 {public void doget (httpservletrequest request, httpservletrepsonse 응답) wrows servletexception, ioexception {string id = request.getparameter ( "id"); BusinessService Service = New BusinessService (); 책 책 = service.findbook (ID); // 사용자의 쇼핑 카트를 가져옵니다. if (cart == null) {cart = new cart (); request.getSession (). setAttribute ( "cart", cart); } // 책을 사용자의 쇼핑 카트에 추가하고 cart.add (book)의 구매를 완료합니다. //response.sendredirect("/web-inf/jsp/listcart.jsp "); request.getRequestDispatcher ( "/web-inf/jsp/listcart.jsp"). forward (요청, 응답); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {doget (요청, 응답); }}deleteitemservlet.java : 특정 제품을 삭제하십시오
package com.web.controller; import java.io.ioexception; import javax.servlet.servletxception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.http.httpronge; com.service.businessservice; // 지정된 쇼핑 항목 삭제 공개 클래스 deleteitemservlet는 httpservlet {public void doget (httpservletrequest request, httpservletreponse 응답) servletexception, ioexception {string id = request.getParameter ( "id"); CART CART = (CART) request.getSession (). getAttribute ( "cart"); BusinessService Service = New BusinessService (); service.deletecartitem (id, cart); // 성공적으로 request.getRequestDispatcher ( "/web-inf/jsp/listcart.jsp"). forward (요청, 응답); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {doget (요청, 응답); }}ClearCartServlet.java : 카트를 지 웁니다
package com.web.controller; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpervletrequest; import; javax.servlet.http.http.httpervletresponse; import com.domain.cart; import com.service.businessService; // 쇼핑 카트 공개 클리어 클리어 카트가 httpservlet을 확장하십시오 {public void doget (httpservletrequest 요청, httpservletexection). request.getSession (). getAttribute ( "cart"); BusinessService Service = New BusinessService (); service.clearCart (CART); request.getRequestDispatcher ( "/web-inf/jsp/listcart.jsp"). forward (요청, 응답); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {doget (요청, 응답); }}ChangeQuantityServlet.java : 쇼핑 카트에서 지정된 제품의 양 수정
package com.web.controller; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpervletrequest; import; javax.servlet.http.http.httpervletresponse; import com.domain.cart; import com.service.businessservice; import com.service.businessservice; // 지정된 수량 공개 클래스 changequantityservlet가 httpservlet {public void doephert (httpservletrequest)를 확장하여 쇼핑 카트에서 책을 수정합니다. ioException {String id = request.getParameter ( "id"); 문자열 수량 = request.getParameter ( "수량"); CART CART = (CART) request.getSession (). getAttribute ( "cart"); BusinessService Service = New BusinessService (); service.changeitemquantity (id, 수량, 카트); request.getRequestDispatcher ( "/web-inf/jsp/listcart.jsp"). forward (요청, 응답); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {doget (요청, 응답); }}JSP 페이지 :
Webroot/web-inf/jsp/lostbook.jsp : 책 목록 쇼 목록
<%@ page language = "java"import = "java.util.*"pageencoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core"prefix = "c"%> <! arttype html public "-// w3c // 과도기 // en "> <html> <head> <title> 책 목록 페이지 </title> </head> <Body Style ="Text -align : Center "> <h1> 책 목록 </h1> <table> <ttr> <td> 책 제목 </td> <td> author </td> <td> 판매 가격 </td> Operation </td> Operation </td> <c : foreach var = "enterd"items = "$ {map}"> <tr> <td> $ {enther.value.name} </td> <td> $ {enther.value.author} </td> <td> $ {enther.value.price} </td> $ {entert.value.d> $ {enterc.dd> <a href = "$ {pagecontext.request.contextpath}/servlet/buyservlet? id = $ {enther.value.id}"rel = "external nofollow"target = "_ blank"> buy </a> </td> </pr : poreach> </table>Webroot/web-inf/jsp/listcart.jsp : 쇼핑 카트 목록 표시
<%@ page language = "java"import = "java.util.*"pageencoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core"prefix = "c"%> <! arttype html public "-// w3c // 전환 // en "> <html> <head> <title> 자동차 목록 </title> <script type ="text/javaScript "> function deleteitem (id) {var b = window.confirm ("delete를 확인합니까? "); if (b) {wind }} function clearCart () {var b = window.confirm ( "지우기를 확인 했습니까 ??"); if (b) {wind }} 함수 ChangeQuantity (입력, ID, OldValue) {var reter = input.value; // 숫자를 수정할 sdfsfs /* // 사용자 입력 수가 숫자인지 (isnan (rater)) {alert ( "숫자를 입력하십시오!"); input.value = OldValue; 반품; } */// 사용자 입력 수가 긍정적 인 정수인지 확인하십시오 (수량 <0 || Quantity! = parseInt (수량)) {alert ( "긍정적 인 정수를 입력하십시오 !!"); input.value = OldValue; 반품; } var b = window.confirm ( "책 수가 수정되었음을 확인합니다." + 수량); if (b) {wind }} </script> </head> <body style = "text-align : center"> <h1> 쇼핑 카트 목록 </h1> <c : test = "$ {empty (cart.map)}"> 당신은 어떤 항목도 구매하지 않았습니다! ! ! </c : if> <c : if test = "$ {! empty (cart.map)}"> <table> <td> <td> <td> <td> 책 제목 </td> <td> author </td> <td> 단원 </td> <td> 수량 </td> <td> subtotal </td> <td> var = "enterd"항목 = "$ {cart.map}"> <tr> <td> $ {enther.value.book.name} </td> <td> $ {enther.value.book.author} </td> <td> $ {enther.value.book.price} </td> <td> value = "$ {enther.value.quantity}"onchange = "changeQuantity (this, $ {elent.key}, $ {enther.value.quantity})"> </td> <td> $ {enther.value.price} </td> <td> <a href = "javascript : void (0)"external nofolly ". rel = "external nofollow"onclick = "deleteitem ($ {enterd.key})"> delete </a> <!-하이퍼 링크의 기본 동작을 제거합니다-> </td> </tr> </c : foreach> <td colspan = "3"> 총 가격 </td> <td colspan = "2"> $} <td colspan = "1"> <a href = "javaScript : void (0)"rel = "external nofollow"rel = "external nofollow"onclick = "clearcart ()"> 카트 </a> </td> </tabl> </body> </html>위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.