首页

2.购买页

3.购物车页

1. 首页代码 发送一个post请求

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>首页</title></head><body><img src="/img/bookcover/shoping.png" alt="购物"><form action="goshop.do" method="post">    <p>欢迎您</p><br>    <input type="submit" value="进入购物"></form></body></html>2.处理首页post请求的controler
package cc.openhome.controler;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.LinkedHashMap;

@WebServlet("/goshop.do")public class GoShop extends HttpServlet {

    void processRequest(HttpServletRequest req,HttpServletResponse resp)    throws ServletException,IOException    {        BookDb bs = new BookDb();        LinkedHashMap<String,Book> books = bs.getAll();        req.setAttribute("books",books);        req.getRequestDispatcher("shop.view").forward(req,resp);

    }

    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        processRequest(req,resp);

    }

    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        processRequest(req,resp);    }}3 ,展示购物页面
package cc.openhome.view;

import cc.openhome.controler.*;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;import java.util.LinkedHashMap;

@WebServlet("/shop.view")public class ShopView extends HttpServlet {

    protected void processRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        resp.setContentType("text/html;charset=UTF-8");

        String bookid = req.getParameter("bookid");        int count = 0;        HttpSession session = req.getSession();

        // 在点击了购买之后书的数量在加一,否则只刷新        if(session.getAttribute("count") != null && bookid != null){            Integer c = (Integer) session.getAttribute("count");            count = c + 1;        }        session.setAttribute("count",count);

        //购物        Cart cart = (Cart) req.getSession().getAttribute("cart");        if(cart == null){            cart = new Cart();            req.getSession().setAttribute("cart",cart);        }

        BusinessService bussiness = new BusinessService();        if(count > 0){            bussiness.buyBook(bookid,cart);        }        session.setAttribute("cart",cart);

        PrintWriter out = resp.getWriter();        out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01'" +                "Transitional//EN");        out.println("<html>");        out.println("<head>");        out.println("<title>购物网页</title>");        out.println("</head>");        out.println("<body>");        out.println("<form action='' method='post'>");        out.println("<table width='100%'>");        out.println("<td><img src='img/bookcover/shop.png' alt='小购物车' width='50'>" +                "<a href='cart.view'>已采购"+count+"书籍</a><td>");        out.println("</table>");        out.println("<table width='100%'>");        out.println("<tr>");        out.println("<td style='color:blue'>书籍编号<td>");        out.println("<td style='color:blue'>书名<td>");        out.println("<td style='color:blue'>图片</td>");        out.println("<td style='color:blue'>价格<td>");        out.println("<td style='color:blue'>购买<td>");        out.println("</tr>");        int i = 0;        LinkedHashMap <String,Book> books = (LinkedHashMap <String,Book>) req.getAttribute("books");        for (String value : books.keySet()){            i++;            Book book = books.get(value);            out.println("<tr>");            out.println("<td>"+book.getId()+"<td>");            out.println("<td>"+book.getName()+"<td>");            out.println("<td><img src='/img/bookcover/book"+i+".jpeg'></td>");            out.println("<td>"+book.getPrice()+"<td>");            out.println("<td><a href='"+resp.encodeURL("goshop.do")+"?bookid="+book.getId()+"'>购买此书</a><td>");            out.println("<tr>");

        }        /*        int i,j = 0,k = 0;        int len = books.size();        for(i = 0;i < len; i++,j++,k++){            if(j % 3 == 0){                out.println("<tr>");            }            out.println("<td>");            out.println("<img src='/img/bookcover/book"+i+".jpeg'>");            out.println("</td>");            if(k % 3 == 0){                out.println("</tr>");            }        }        j = 0;        k = 0;        for( i = 0;i < len; i++,j++,k++){            if(j % 3 == 0){                out.println("<tr>");            }            out.println("<td>");            out.println("<a href='#'>购买此书</a>");            out.println("</td>");            if(k % 3 == 0){                out.println("</tr>");            }        }        */        out.println("</table>");        out.println("</form>");        out.println("</body>");        out.println("</html>");        out.close();    }

    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        processRequest(req, resp);    }

    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        processRequest(req, resp);    }}
4.购物车页面
package cc.openhome.controler;

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;import java.util.Map;

@WebServlet("/cart.view")public class CartShow extends HttpServlet {    public void processRequest(HttpServletRequest req, HttpServletResponse resp)    throws ServletException, IOException    {        resp.setContentType("text/html;charset=UTF-8");        HttpSession session = req.getSession();        Cart carts = (Cart) session.getAttribute("cart");

        PrintWriter out = resp.getWriter();        out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01'" +                "Transitional//EN");        out.println("<html>");        out.println("<head>");        out.println("<title>购物结算</title>");        out.println("</head>");        out.println("<body>");        out.println("<form action='' method='post'>");        out.println("<table width='100%'>");        out.println("<td><img src='img/bookcover/shoping.png' alt='购物车' width='100'>");        out.println("</table>");        out.println("<table width='100%'>");        out.println("<tr>");        out.println("<td style='color:blue'>书籍编号<td>");        out.println("<td style='color:blue'>书名<td>");        out.println("<td style='color:blue'>图片</td>");        out.println("<td style='color:blue'>单价<td>");        out.println("<td style='color:blue'>数量<td>");        out.println("<td style='color:blue'>单本书总价<td>");        out.println("</tr>");        int i = 0;        Map<String,CartItem> bookmap = carts.getBookMap();        for (String value : bookmap.keySet()){            i++;            CartItem citem = bookmap.get(value);            Book bk = citem.getBook();

            out.println("<tr>");            out.println("<td>"+bk.getId()+"<td>");            out.println("<td>"+bk.getName()+"<td>");            out.println("<td><img src='/img/bookcover/book"+i+".jpeg'></td>");            out.println("<td>"+bk.getPrice()+"<td>");            out.println("<td>"+citem.getQuantity()+"<td>");            out.println("<td>"+citem.getPrice()+"<td>");            out.println("</tr>");        }        out.println("<tr>");        out.println("<td style='color:green';font-size:200%'>总价</td>");        out.println("<td style='color:green';font-size:200%'> "+carts.getPrice()+"</td>");        out.println("</tr>");        out.println("</table>");        out.println("</form>");        out.println("</body>");        out.println("</html>");        out.close();

    }

    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        processRequest(req, resp);    }

    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        processRequest(req, resp);    }}
5,书籍类
package cc.openhome.controler;

import java.util.ArrayList;

public class Book {    private String id;    private String name;    private double price;    public Book(){

    }    public Book(String id,String name, double price){        this.id = id;        this.name = name;        this.price = price;    }

    public String getId() {        return id;    }

    public String getName() {        return name;    }

    public double getPrice() {        return price;    }}
6,单个购物车类
package cc.openhome.controler;

public class CartItem {    private Book book;    private int quantity;    private double price;

    public double getPrice() {        return book.getPrice() * this.quantity;    }

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

    public void setPrice(double price) {        this.price = price;    }}
7,购物车类
package cc.openhome.controler;

import java.util.LinkedHashMap;import java.util.Map;

public class Cart {    private Map<String,CartItem> bookMap = new LinkedHashMap<>();

    private double price;

    public void addBook(Book book){        CartItem cartItem = bookMap.get(book.getId());

        if(cartItem == null){            cartItem = new CartItem();            cartItem.setBook(book);            cartItem.setQuantity(1);

            bookMap.put(book.getId(),cartItem);        }else {            cartItem.setQuantity(cartItem.getQuantity() + 1);        }    }

    public double getPrice() {        double totalPrice = 0;        for(Map.Entry<String,CartItem> me : bookMap.entrySet()){            CartItem cartItem = me.getValue();

            totalPrice += cartItem.getPrice();        }        return totalPrice;    }

    public Map<String, CartItem> getBookMap() {        return bookMap;    }

    public void setBookMap(Map<String, CartItem> bookMap) {        this.bookMap = bookMap;    }

    public void setPrice(double price) {        this.price = price;    }}
8图书数据源
package cc.openhome.controler;

import java.util.LinkedHashMap;

public class BookDb {    private LinkedHashMap<String,Book> map = new LinkedHashMap<>();

    public BookDb(){        map.put("1",new Book("1","java编程",10.00));        map.put("2",new Book("2","C++编程",10.00));        map.put("3",new Book("3","C编程",10.00));    }

    public LinkedHashMap<String,Book> getAll(){        return map;    }    public Book findBook(String id){        return map.get(id);    }}
总结:对于个人而言:难点在于1.页面数据的展示.2.使用resp.encodeurl 在本页面刷新.3.使用<a href> 重定向并且带了一个参数,把书的id发送给本页面处理.4.http session 来存储发送数据.5.书籍,购物车类的设计.

转载于:https://www.cnblogs.com/changlili/p/10000820.html

Java servlet 实现的简易购物车相关推荐

  1. java购物车项目代码_javaweb练手项目jsp+servlet简易购物车系统

    简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...

  2. javaweb练手项目jsp+servlet简易购物车系统

    简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...

  3. Servlet之session实践:session实现简易购物车

    文章目录 Servlet之session实践:session实现简易购物车 1 过程分析 1.1 Product类:存储商品信息 1.2 ShoppingItem类:存储购买条目信息 1.3 Shop ...

  4. java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)

    [实例简介] jsp+servlet+javabean实现简易留言板(包含数据库文件) 简单体验MVC设计模式 jsp:视图,与用户打交道:servlet:控制器,请求分配转发,联系视图层与模型层:j ...

  5. jsp和JAVA购物车_jsp+servlet+javabean实现简单购物车(附源码)

    [实例简介] 利用jsp的MVC模式实现简单的购物车,不过这个有很多还不完善的,后续会继续编写上传的 [实例截图] [核心代码] bookstore └── bookstore ├── src │   ...

  6. Session机制二(简易购物车案例)

    一:案例一(简易购物车) 1.目录结构 2.step1.jsp 1 <%@ page language="java" contentType="text/html; ...

  7. Java Servlet技术

    Java Servlet技术 Stephanie Bodoff 当Web刚开始被用来传送服务时,服务提供者就已经意识到了动态内容的需要.Applet是为了实现这个目标的一种最早的尝试,它主要关注使用客 ...

  8. Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)

    Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能.(ArrayList,SQLite) 布局(activity_main.xml): <?xml v ...

  9. Java web+MySQL编写简易候选人投票(完整代码)

    Java web+MySQL编写简易候选人投票(完整代码) 代码实现效果,自己选的图片太大了,没有做更改,将就看就行 项目用到的三个jar包自己导入就行 代码结构如下图 Candidate中的代码 p ...

最新文章

  1. 使用Feign时如何设置Feign的Header信息
  2. android gc 回调,android - 使用Picasso通过Bitmap获取回调
  3. python操作excel-openpyxl(1)
  4. canvas中文显示乱码 html5_浅析HTML5 Canvas的几种中文字体缩小方案
  5. 虚拟背景背后的技术:直播时各种背景是怎么实现的?
  6. 每周分享五个 PyCharm 使用技巧(一)
  7. WPF中的鼠标事件详解
  8. 日语学习-多邻国-饮食
  9. 地理必修一三大类岩石_高中地理 | 必备基础知识点干货
  10. volatile关键字和Java线程安全问题
  11. 【重点】剑指offer——面试题36:数组中的逆序对
  12. cmake常用语法参考
  13. C++ OpenCV 开发笔记整理分类合集【所有的相关记录,都整理在此】
  14. 浏览计算机已查找驱动程序软件,欢迎访问海南省数字证书认证中心
  15. 计算机word简历制作教程,用word制作个人简历的方法
  16. 制作删不掉的php唯读档,ppt母版logo删除不了怎么办
  17. WebService调用第三方服务(中英文翻译)
  18. idea-svn文件名字浅蓝色(蓝绿色)含义
  19. 基于C# winform的操作系统课程设计:SPOOLING假脱机输入输出技术模拟
  20. python中bin函数如何使用?

热门文章

  1. linux 链接 文件,聊聊 Linux 里的文件链接
  2. php第一行空白,网页头部多出一行空白问题的解决方法 (PHP文件头BOM问题)
  3. java垃圾回收菜鸟_java垃圾回收机制
  4. matlab 第i行到j行,matlab简明教程
  5. (六) shiro在web中自定义Realm
  6. liferay6.2 struts2 request.getparameter取值为null
  7. 《数据库SQL实战》查找入职员工时间排名倒数第三的员工的所有信息
  8. 【solr专题之四】在Tomcat 中部署Solr4.x
  9. 第17课:基于 CRF 的中文句法依存分析模型实现
  10. mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法