用session实现购物车(含设计分析及源代码)part3
2011-11-20 15:43
477 查看
最后的servlet层的编写:
首先是简单商品展示页(IndexServlet.servlet):
点击商品超链接后显示商品的详细信息(BuyServlet.servlet):
确认信息(CartServlet.servlet):
购物车信息(ShowCart.servlet):
这样我们的session购物车就简单的完成了。还有许多小缺点和bug希望各位积极提出意见。
首先是简单商品展示页(IndexServlet.servlet):
package cn.zc.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.zc.domain.Product; import cn.zc.service.ProductServiceImpl; public class IndexServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * Constructor of the object. */ public IndexServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); ProductServiceImpl psi=new ProductServiceImpl();//数据库service层 List<Product> entities=psi.findAll();//得到数据库数据 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE>"); out.println("<style>a{text-decoration:none;color:#666;font-size:20px;}"); out.println("a:hover{font-size:22px;color:#f00;}"); out.println("</style>"); out.println("</HEAD>"); out.println(" <BODY>"); out.println(" <ul style=\"list-style:none;text-align:left;\">"); for (int i=0;i<entities.size();i++){ out.println("<li><a href=\"BuyServlet?id="+(i+1)+"\">"+"商品名称: "+ //每个列出商品的名称和价格做成超链接点击时提交给BuyServlet entities.get(i).getName()+" 参考价格: "+ entities.get(i).getPrice()+"</a></li>"); } out.println(" </ul>"); out.println("<br><br>"); out.println("<a href=\"ShowCart\">查看购物车</a>");// 查看购物车连接跳转到ShowCart.servlet out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
点击商品超链接后显示商品的详细信息(BuyServlet.servlet):
package cn.zc.servlet; 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 cn.zc.domain.Product; import cn.zc.service.ProductServiceImpl; public class BuyServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * Constructor of the object. */ public BuyServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); ProductServiceImpl psi=new ProductServiceImpl();//数据库service层 int id=Integer.parseInt(request.getParameter("id")); Product entity=psi.findById(id);//查找出指定id的商品 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.println(" <table border=\"1px\" width=\"500px\" height=\"200px\">"); out.println(" <tr height=\"50px\">"); out.println(" <td>商品名:</td>"); out.println(" <td>"+entity.getName()+"</td>"); out.println(" <td>实惠价:</td>"); out.println(" <td>"+entity.getPrice()+"</td>"); out.println(" </tr>"); out.println(" <tr>"); out.println(" <td>介绍:</td>"); out.println(" <td colspan=\"3\">"+entity.getSummary()+"</td>"); out.println(" </tr>"); out.println(" </table>"); out.println("<br>"); out.println("<form action=\"CarServlet\" method=\"post\">"); //点击下面的“加入购物车”提交按钮将数据提交给CarServlet提示用户已添加至购物车 out.println("<input type=\"hidden\" value=\""+id+"\" name=\"id\">"); out.println("购买数量:<input type=\"input\" name=\"buyNum\">"); out.println("<input type=\"submit\" value=\"加入购物车\">"); out.println("<br><br>"); out.println("<a href=\"IndexServlet\">返回首页继续购物</a>"); out.println("</form>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
确认信息(CartServlet.servlet):
package cn.zc.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import cn.zc.domain.CarProduct; import cn.zc.domain.Product; import cn.zc.service.ProductServiceImpl; public class CarServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * Constructor of the object. */ public CarServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); ProductServiceImpl psi = new ProductServiceImpl();// 数据库service层 int id = Integer.parseInt(request.getParameter("id")); Product entity = psi.findById(id);// 查找出指定id的商品 HttpSession session = request.getSession();// 创建session /* 将加入购物车的商品id和购买数量存储到car购物车对象中 */ CarProduct carProduct = new CarProduct(entity, Integer.parseInt(request .getParameter("buyNum"))); List<CarProduct> car = (List<CarProduct>) session.getAttribute("product");// 用列表存储CarProduct对象 if(car==null){ car=new ArrayList<CarProduct>(); } car.add(carProduct);// 添加新加入购物车的商品 session.setAttribute("product", car); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" 物品 : " + carProduct.getName() + " 已加入购物车!购买数量是: " + carProduct.getBuyNum()); out.println("<br><br>"); out.println("<a href=\"IndexServlet\">返回首页继续购物</a>"); out.println("<a href=\"ShowCart\">查看购物车</a>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to * post. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * Initialization of the servlet. <br> * * @throws ServletException * if an error occurs */ public void init() throws ServletException { // Put your code here } }
购物车信息(ShowCart.servlet):
package cn.zc.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import cn.zc.domain.CarProduct; public class ShowCart extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * Constructor of the object. */ public ShowCart() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); showCar(request, response);// 调用查看购车函数 out.println(" <br><br><a href=\"IndexServlet\">返回首页继续购物</a>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void showCar(HttpServletRequest request, HttpServletResponse response) throws IOException {// 查看购物车函数 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); List<CarProduct> car; HttpSession session = request.getSession(); if (session.getAttribute("product") == null) { out.println(" 你还没有买东西哟!"); } else { car = (List<CarProduct>) session.getAttribute("product"); Double totalMoney = 0.00;// 消费总金额 out.println(" <table border=1px>"); for (CarProduct entity : car) {//以表格形式显示以购买商品信息 out.println(" <tr><td>商品名:</td><td>" + entity.getName() + "</td><td>单价:</td><td>" + entity.getPrice() + "<td>购买数量:</td><td>" + entity.getBuyNum() + "</td></tr>"); totalMoney += entity.getBuyNum() * entity.getPrice(); } out.println(" <tr><td colspan=5>消费总额小计(RMB):</td><td>" + totalMoney + "</td></tr>"); out.println(" </table>"); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * Initialization of the servlet. <br> * * @throws ServletException * if an error occurs */ public void init() throws ServletException { // Put your code here } }
这样我们的session购物车就简单的完成了。还有许多小缺点和bug希望各位积极提出意见。
相关文章推荐
- 用session实现购物车(含设计分析及源代码)part1
- 用session实现购物车(含设计分析及源代码)part2
- BlogEngine.Net架构与源代码分析系列part13:实现分析(上)——HttpHandlers与HttpModules
- BlogEngine.Net架构与源代码分析系列part9:开发扩展(上)——Extension与管理上的实现
- BlogEngine.Net架构与源代码分析系列part14:实现分析(下)——网站页面上值得参考的部分
- 使用session技术来实现网上商城购物车的功能
- Chromium多线程模型设计和实现分析
- Session ArrayList 实现购物车程序
- 使用session实现简单的购物车 (将点击了购买链接的书籍放到购物车页面显示出来)。
- C 标准库 函数 源代码的实现 和 分析
- 购物车的实现及Cookie,session,数据库存储的优缺点
- 设计有穷自动机DFA实现C++简单程序的词法分析、扫描(编译原理实验) 推荐
- 看透springMvc源代码分析与实现这本书中第八章实例总结(controller和View)
- Silverlight企业应用快速开发平台框架设计(二)分析-平台实现重点是什么,要怎么做?
- 设计模式之建造者模式 c++实现和详细分析
- jQuery基于cookie实现的购物车实例分析
- [原创]java WEB学习笔记24:MVC案例完整实践(part 5)---删除操作的设计与实现
- JavaWeb_利用Session实现简易购物车
- cookie实现购物车与session的登录判断
- JAVAEE中用session实现简单的购物车