javaweb购物车案列学习开发

2025-05-29 0 86

本文实例为大家分享了javaweb购物车案列的具体代码,供大家参考,具体内容如下

一、项目目录结构  

javaweb购物车案列学习开发

二、源代码

dao包——dao层:bookdao.java

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
package 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——模拟数据库

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25
package com.db;

import java.util.linkedhashmap;

import java.util.map;

import com.domain.book;

import com.sun.org.apache.bcel.internal.generic.new;

//代表数据库

//代表数据库

public class db {

private static map map = new linkedhashmap();

static{

map.put("1", new book("1","javaweb开发","老张",38,"一本好书"));

map.put("2", new book("2","jdbc开发","老黎",18,"一本好书"));

map.put("3", new book("3","ajax开发","老佟",328,"一本好书"));

map.put("4", new book("4","jbpm开发","老毕",58,"一本好书"));

map.put("5", new book("5","struts开发","老方",28,"一本好书"));

map.put("6", new book("6","spring开发","老方",98,"一本好书"));

}

public static map getall(){

return map;

}

}

domain包:

book.java:书的实体类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55
package com.domain;

//书的实体类

public class book {

private string id;

private string name;

private string author;

private double price;

private string description;

public book() {

super();

// todo auto-generated constructor stub

}

public book(string id, string name, string author, double price,

string description) {

super();

this.id = id;

this.name = name;

this.author = author;

this.price = price;

this.description = description;

}

public string getid() {

return id;

}

public void setid(string id) {

this.id = id;

}

public string getname() {

return name;

}

public void setname(string name) {

this.name = name;

}

public string getauthor() {

return author;

}

public void setauthor(string author) {

this.author = author;

}

public double getprice() {

return price;

}

public void setprice(double price) {

this.price = price;

}

public string getdescription() {

return description;

}

public void setdescription(string description) {

this.description = description;

}

}

cart.java:购物车类    

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45
package com.domain;

import java.util.linkedhashmap;

import java.util.map;

//代表用户的购物车

//代表用户的购物车

public class cart {

private map<string,cartitem> map = new linkedhashmap();

private double price; //记住购物车所有商品多少钱

public void add(book book){

//看购物车中有没有,要添加的书对应的购物项

cartitem item = map.get(book.getid());

if(item==null){

item = new cartitem();

item.setbook(book);

item.setquantity(1);

map.put(book.getid(), item);

}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;

return price;

}

public void setprice(double price) {

this.price = price;

}

}

cartitem.java:购物项   

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
package com.domain;

//用于代表某个商品,以及商品出现的次数(购物项)

public class cartitem {

private book book;

private int quantity;

private double price;

public book getbook() {

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(double price) {

this.price = price;

}

}

service包:service层

businessservice.java:      

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38
package com.service;

import java.util.map;

import com.dao.bookdao;

import com.domain.book;

import com.domain.cart;

import com.domain.cartitem;

//业务类,统一对web层提供所有服务

public class businessservice {

private bookdao dao = new bookdao();

public map getallbook(){

return dao.getall();

}

public book findbook(string id){

return dao.find(id);

}

//删除购物车中的购物项

public void deletecartitem(string id, cart cart) {

cart.getmap().remove(id);

}

//清空购物车

public void clearcart(cart cart) {

cart.getmap().clear();

}

//改变购物项的数量

public void changeitemquantity(string id, string quantity, cart cart) {

cartitem item = cart.getmap().get(id);

item.setquantity(integer.parseint(quantity));

}

}

web层:

listbookservlet.java:显示所有书籍      

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32
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.httpservletrequest;

import javax.servlet.http.httpservletresponse;

import com.service.businessservice;

//获取所有书籍

//获取所有书

public class listbookservlet extends httpservlet {

public void doget(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

businessservice service = new businessservice();

map map = service.getallbook();

request.setattribute("map", map);

request.getrequestdispatcher("/web-inf/jsp/listbook.jsp").forward(request, response);

}

public void dopost(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

doget(request, response);

}

}

buyservlet.java:处理购买请求      

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45
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.httpservletresponse;

import com.domain.book;

import com.domain.cart;

import com.service.businessservice;

//完成书籍购买

//完成书籍购买

public class buyservlet extends httpservlet {

public void doget(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

string id = request.getparameter("id");

businessservice service = new businessservice();

book book = service.findbook(id);

//得到用户的购物车

cart cart = (cart) request.getsession().getattribute("cart");

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(request, response);

}

public void dopost(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

doget(request, response);

}

}

deleteitemservlet.java:删除某一种商品

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35
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.httpservletresponse;

import com.domain.cart;

import com.service.businessservice;

//删除指定的购物项

public class deleteitemservlet extends httpservlet {

public void doget(httpservletrequest request, httpservletresponse response)

throws 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(request, response);

}

public void dopost(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

doget(request, response);

}

}

clearcartservlet.java:清空购物车

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33
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.httpservletrequest;

import javax.servlet.http.httpservletresponse;

import com.domain.cart;

import com.service.businessservice;

//清空购物车

public class clearcartservlet extends httpservlet {

public void doget(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

cart cart = (cart) request.getsession().getattribute("cart");

businessservice service = new businessservice();

service.clearcart(cart);

request.getrequestdispatcher("/web-inf/jsp/listcart.jsp").forward(request, response);

}

public void dopost(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

doget(request, response);

}

}

changequantityservlet.java:修改购物车中指定商品的数量

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37
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.httpservletrequest;

import javax.servlet.http.httpservletresponse;

import com.domain.cart;

import com.service.businessservice;

//把购物车中的书修改为指定数量

public class changequantityservlet extends httpservlet {

public void doget(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

string id = request.getparameter("id");

string quantity = request.getparameter("quantity");

cart cart = (cart) request.getsession().getattribute("cart");

businessservice service = new businessservice();

service.changeitemquantity(id,quantity,cart);

request.getrequestdispatcher("/web-inf/jsp/listcart.jsp").forward(request, response);

}

public void dopost(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

doget(request, response);

}

}

jsp页面:

webroot/web-inf/jsp/listbook.jsp:显示书籍列表

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!doctype html public "-//w3c//dtd html 4.01 transitional//en">

<html>

<head>

<title>书籍列表页面</title>

</head>

<body style="text-align: center">

<h1>书籍列表</h1>

<table width="70%" border="1">

<tr>

<td>书名</td>

<td>作者</td>

<td>售价</td>

<td>描述 </td>

<td>操作</td>

</tr>

<c:foreach var="entry" items="${map}">

<tr>

<td>${entry.value.name }</td>

<td>${entry.value.author }</td>

<td>${entry.value.price }</td>

<td>${entry.value.description } </td>

<td>

<a href="${pagecontext.request.contextpath }/servlet/buyservlet?id=${entry.value.id }" rel="external nofollow" target="_blank">购买</a>

</td>

</tr>

</c:foreach>

</table>

</body>

webroot/web-inf/jsp/listcart.jsp:显示购物车列表

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!doctype html public "-//w3c//dtd html 4.01 transitional//en">

<html>

<head>

<title>购物车列表</title>

<script type="text/javascript">

function deleteitem(id){

var b = window.confirm("您确认删除吗??");

if(b){

window.location.href="${pagecontext.request.contextpath }/servlet/deleteitemservlet?id=" rel="external nofollow" +id;

}

}

function clearcart(){

var b = window.confirm("您确认清空吗??");

if(b){

window.location.href="${pagecontext.request.contextpath}/servlet/clearcartservlet" rel="external nofollow" ;

}

}

function changequantity(input,id,oldvalue){

var quantity = input.value; //得到要修改的数量 sdfsfs

/*

//检查用户输入的数量是不是一个数字

if(isnan(quantity)){

alert("请输入数字!!");

input.value = oldvalue;

return;

}

*/

//检查用户输入的数量是不是一个正整数

if(quantity<0 || quantity!=parseint(quantity)){

alert("请输入正整数!!");

input.value = oldvalue;

return;

}

var b = window.confirm("您确认把书的数量修改为:" + quantity);

if(b){

window.location.href="${pagecontext.request.contextpath}/servlet/changequantityservlet?id=" rel="external nofollow" + id + "&quantity=" + quantity;

}

}

</script>

</head>

<body style="text-align: center">

<h1>购物车列表</h1>

<c:if test="${empty(cart.map)}">

您没有购买任何商品!!!

</c:if>

<c:if test="${!empty(cart.map)}">

<table width="70%" border="1">

<tr>

<td>书名</td>

<td>作者</td>

<td>单价</td>

<td>数量 </td>

<td>小计</td>

<td>操作</td>

</tr>

<c:foreach var="entry" items="${cart.map}">

<tr>

<td>${entry.value.book.name }</td>

<td>${entry.value.book.author }</td>

<td>${entry.value.book.price }</td>

<td>

<input type="text" name="quantity" value="${entry.value.quantity }" style="width:35px" onchange="changequantity(this,${entry.key},${entry.value.quantity})">

</td>

<td>${entry.value.price }</td>

<td>

<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" onclick="deleteitem(${entry.key })">删除</a> <!-- 去掉超链接默认行为 -->

</td>

</tr>

</c:foreach>

<tr>

<td colspan="3">总价</td>

<td colspan="2">${cart.price }元</td>

<td colspan="1">

<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" onclick="clearcart()">清空购物车</a>

</td>

</tr>

</table>

</c:if>

</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/niuchuangfeng/p/9077503.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 javaweb购物车案列学习开发 https://www.kuaiidc.com/111820.html

相关文章

发表评论
暂无评论