Session实现购物车功能(八)
2017-11-16 18:43
701 查看
(一)创建实体类
(二)创建数据库模拟类
(三)创建ListBookServlet类显示所有图书
(四)实现购买类PurchaseServlet
(五)CartServlet显示用户所购买的图书
(六)配置各个Servlet类
结果:
package com.Test; import java.io.Serializable; /** * * @author Kaina * */ public class Book implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String id; private String name; public Book(String id, String name) { //super(); this.id = id; this.name = name; } 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; } }
(二)创建数据库模拟类
package com.Test; import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; public class BookDB { private static Map<String, Book> books = new LinkedHashMap<String, Book>(); // 1.保存图书 static { books.put("1", new Book("1", "Hibernate")); books.put("2", new Book("2", "Spring")); books.put("3", new Book("3", "Struts2")); books.put("4", new Book("4", "Java web")); books.put("5", new Book("5", "Java")); } // 2.获得所有图书 public static Collection<Book> getAll() { return books.values(); } // 3.获取指定图书 public static Book getBook(String id) { return books.get(id); } }
(三)创建ListBookServlet类显示所有图书
package com.Test; import java.io.IOException; import java.io.PrintWriter; import java.util.Collection; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ListBookServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); Collection<Book> books = BookDB.getAll(); out.println("本站提供图书有:<br />"); for(Book book:books){ String url="/Project01/PurchaseServlet?id="+book.getId(); out.write(book.getName()+"<a href='"+url+"'>点击购买</a><br />"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
(四)实现购买类PurchaseServlet
package com.Test; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class PurchaseServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取购买商品的ID号 String id=request.getParameter("id"); if(id==null){ String url="/Project01/ListBookServletPath"; response.sendRedirect(url); return; } //2.根据id获取书名 Book book=BookDB.getBook(id); //3.创建HttpSession对象 HttpSession session = request.getSession(); //4.获取session对象中的购物车 @SuppressWarnings("unchecked") List<Book> cart=(List<Book>) session.getAttribute("cart"); if(cart==null){ //5.使用List集合当作购物车 cart=new ArrayList<Book>(); //6.使用session对象保存cart对象 session.setAttribute("cart", cart); } //把商品添加到购物车 cart.add(book); //7.创建Cookie对象保存session的id Cookie cookie=new Cookie("JSESSIONID",session.getId()); cookie.setMaxAge(30*60); cookie.setPath("/Project01"); response.addCookie(cookie); //8.重定向到购物车页面 String url="/Project01/CartServlet"; response.sendRedirect(url); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
(五)CartServlet显示用户所购买的图书
package com.Test; 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; public class CartServlet extends HttpServlet { private static final long serialVersionUID = 1L; @SuppressWarnings("unchecked") protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); List<Book> cart=null; //1.标记用户是否买过商品 boolean purFlag=true; HttpSession session = request.getSession(); if(session==null){ purFlag=false; }else{ //2.获取用户购物车 cart=(List<Book>) session.getAttribute("cart"); if(cart==null){ purFlag=false; } } if(!purFlag){ out.println("对不起!您还没有购买任何商品,<br />"); }else{ out.println("您购买的图书有:<br />"); for(Book book:cart){ out.write(book.getName()+"<br />"); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
(六)配置各个Servlet类
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Project01</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <servlet> <description></description> <display-name>ListBookServlet</display-name> <servlet-name>ListBookServlet</servlet-name> <servlet-class>com.Test.ListBookServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ListBookServlet</servlet-name> <url-pattern>/ListBookServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>ListBookServlets</display-name> <servlet-name>ListBookServlets</servlet-name> <servlet-class>com.Test.ListBookServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ListBookServlets</servlet-name> <url-pattern>/ListBookServletPath</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>PurchaseServlet</display-name> <servlet-name>PurchaseServlet</servlet-name> <servlet-class>com.Test.PurchaseServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>PurchaseServlet</servlet-name> <url-pattern>/PurchaseServlet</url-pattern> </servlet-mapping> <servlet> <description& b994 gt;</description> <display-name>CartServlet</display-name> <servlet-name>CartServlet</servlet-name> <servlet-class>com.Test.CartServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CartServlet</servlet-name> <url-pattern>/CartServlet</url-pattern> </servlet-mapping> </web-app>
结果:
相关文章推荐
- 使用session技术实现购物车的功能
- session实现购物车功能实例
- Session简单实现购物车功能
- 使用session技术来实现网上商城购物车的功能
- 使用session技术来实现网上商城购物车的功能
- PHP+MYSQL+SESSION+ThinkPHP实现简单购物车功能
- JSP只用Hashtable和session实现购物车功能的简单实例
- Java EE中使用session实现购物车功能
- PHP+MYSQL+SESSION+ThinkPHP实现简单购物车功能
- java web开发_购物车功能实现----cookie,session等多种实现方式
- JAVAEE中用Session简单实现购物车功能示例代码
- Session原理、生命周期及购物车功能的实现
- PHP session实现购物车功能
- 用session实现简单的购物车功能
- Session对象的应用:实现简单的购物车的功能
- 使用session技术来实现网上商城购物车的功能
- 使用session技术来实现网上商城购物车的功能
- 使用session技术来实现网上商城购物车的功能【整理】
- javaWeb的session实现购物车
- 实现购物车页面结算功能