使用JSP做购物车一(实现)

来源:互联网 发布:郑亚旗 知乎 编辑:程序博客网 时间:2024/06/05 04:36

按照上篇文章的分析来具体实现:

定义所需包名来分工:


功能一:显示所有图书:

1、数据层:用双列集合来保存数据,用静态方法来添加数据里嵌套Book类(在实体类包domain里来创建,代码在下面)的构造方法,

public class DB {private static Map<String,Book> map=new LinkedHashMap<String,Book>();static{map.put("1", new Book("1","java","A",20));map.put("2", new Book("2","c++","B",21));map.put("3", new Book("3","PHP","C",22));map.put("4", new Book("4",".NET","D",23));map.put("4", new Book("5","Python","E",23));map.put("6", new Book("6","C#","F",23));}
          /*按照实施过程来创建查找方法,通过类名来调用该静态方法。返回map对象。即上篇文章的
             实施过程,可返回参考*/
         //注意map的key和value对应public static Map<String,Book> findAllBook(){return map;}public static Book findBookById(String id){return DB.findBookById(id);}}

2、实体层

public class Book {private String id;private String name;private String author;private double price;private int num=1;public Book() {}
            //即对应DB类里的new Book("1","java","A",20)public Book(String id, String name, String author, int price) {super();this.id = id;this.name = name;this.author = author;this.price = price;}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(int price) {this.price = price;}}
3、访问层

//访问层/持久层public class BookDao {//查询所有的图书private DB db=new DB();public Map<String,Book> findAllBook(){return DB.findAllBook();}public static Book findBookById(String id){return DB.findBookById(id);}}
4、业务层

public class BookService {private BookDao bookDao = new BookDao();// 查询所有图书public Map<String, Book> findAllBook() {return bookDao.findAllBook();}// 购买图书public void buyBook(String id, Car car) {// 取得图书列表Map<String, Item> map = car.getMap();// 根据id获得图书Item item = map.get(id);if (item == null) {Book book = bookDao.findBookById(id);// 加入购物车item = new Item();// Book book =new Book();item.setBook(book);item.setNum(1);map.put(id, item);} else {item.setNum(item.getNum() + 1);}}public void deleteBook(String id, Car car) {Map<String, Item> map = car.getMap();map.remove(id);}public void clearCar(Car car) {Map<String, Item> map = car.getMap();map.clear();}public void updateBook(String id, int num, Car car) {Map<String, Item> map = car.getMap();Item item = map.get(id);item.setNum(num);}}

5、控制层

 
public class ListBookServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {BookService bookservice=new BookService();Map<String,Book> map=bookservice.findAllBook();request.setAttribute("map", map);//请求转发:request.getRequestDispatcher("/view/listAllBook.jsp").forward(request, response);}}

6、显示层

listAllBook.jsp

<html><body><table border="1" align="center" width="80%"><caption>图书列表</caption><tr><th>编号</th><th>书名</th><th>作者</th><th>单价</th></tr><c:forEach var="entry" items="${map}"><tr><td>${entry.value.id}</td><td>${entry.value.name}</td><td>${entry.value.auther}</td><td>${entry.value.price}</td><td><a style="text-decoration:none"href="BuyServlet?id=${entry.value.id}">购买</a></td></tr></c:forEach></table></body></html>



0 0