Java servlet 实现的简易购物车
首页
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 实现的简易购物车相关推荐
- java购物车项目代码_javaweb练手项目jsp+servlet简易购物车系统
简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...
- javaweb练手项目jsp+servlet简易购物车系统
简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...
- Servlet之session实践:session实现简易购物车
文章目录 Servlet之session实践:session实现简易购物车 1 过程分析 1.1 Product类:存储商品信息 1.2 ShoppingItem类:存储购买条目信息 1.3 Shop ...
- java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)
[实例简介] jsp+servlet+javabean实现简易留言板(包含数据库文件) 简单体验MVC设计模式 jsp:视图,与用户打交道:servlet:控制器,请求分配转发,联系视图层与模型层:j ...
- jsp和JAVA购物车_jsp+servlet+javabean实现简单购物车(附源码)
[实例简介] 利用jsp的MVC模式实现简单的购物车,不过这个有很多还不完善的,后续会继续编写上传的 [实例截图] [核心代码] bookstore └── bookstore ├── src │ ...
- Session机制二(简易购物车案例)
一:案例一(简易购物车) 1.目录结构 2.step1.jsp 1 <%@ page language="java" contentType="text/html; ...
- Java Servlet技术
Java Servlet技术 Stephanie Bodoff 当Web刚开始被用来传送服务时,服务提供者就已经意识到了动态内容的需要.Applet是为了实现这个目标的一种最早的尝试,它主要关注使用客 ...
- Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)
Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能.(ArrayList,SQLite) 布局(activity_main.xml): <?xml v ...
- Java web+MySQL编写简易候选人投票(完整代码)
Java web+MySQL编写简易候选人投票(完整代码) 代码实现效果,自己选的图片太大了,没有做更改,将就看就行 项目用到的三个jar包自己导入就行 代码结构如下图 Candidate中的代码 p ...
最新文章
- 使用Feign时如何设置Feign的Header信息
- android gc 回调,android - 使用Picasso通过Bitmap获取回调
- python操作excel-openpyxl(1)
- canvas中文显示乱码 html5_浅析HTML5 Canvas的几种中文字体缩小方案
- 虚拟背景背后的技术:直播时各种背景是怎么实现的?
- 每周分享五个 PyCharm 使用技巧(一)
- WPF中的鼠标事件详解
- 日语学习-多邻国-饮食
- 地理必修一三大类岩石_高中地理 | 必备基础知识点干货
- volatile关键字和Java线程安全问题
- 【重点】剑指offer——面试题36:数组中的逆序对
- cmake常用语法参考
- C++ OpenCV 开发笔记整理分类合集【所有的相关记录,都整理在此】
- 浏览计算机已查找驱动程序软件,欢迎访问海南省数字证书认证中心
- 计算机word简历制作教程,用word制作个人简历的方法
- 制作删不掉的php唯读档,ppt母版logo删除不了怎么办
- WebService调用第三方服务(中英文翻译)
- idea-svn文件名字浅蓝色(蓝绿色)含义
- 基于C# winform的操作系统课程设计:SPOOLING假脱机输入输出技术模拟
- python中bin函数如何使用?
热门文章
- linux 链接 文件,聊聊 Linux 里的文件链接
- php第一行空白,网页头部多出一行空白问题的解决方法 (PHP文件头BOM问题)
- java垃圾回收菜鸟_java垃圾回收机制
- matlab 第i行到j行,matlab简明教程
- (六) shiro在web中自定义Realm
- liferay6.2 struts2 request.getparameter取值为null
- 《数据库SQL实战》查找入职员工时间排名倒数第三的员工的所有信息
- 【solr专题之四】在Tomcat 中部署Solr4.x
- 第17课:基于 CRF 的中文句法依存分析模型实现
- mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法