javaweb学习笔记(七)-简单购物功能实现
2017-04-30 12:34
211 查看
跟着书上做了一个简单的购物功能,代码如下:
在配置好web.xml后,可按照预期的正常进行!但是感觉这更像是一个购物车功能,算了,无所谓了,之后自己按照自己的想法做一个吧。
┐( ̄ヮ ̄)┌
import java.io.Serializable; /* * 该类用于封装图书信息,其中定义了id和name属性,分别用来表示书的编号和名称 * */ public class Book implements Serializable{ private static final long serialVersionUID=1L; private String id; private String name; public Book(){ } public Book(String id,String name){ 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; } }
import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; /* * 该类用于模拟保存所有图书的数据库。该类在实现时,通过Map集合储存了5个不同的Book对象, * 提供了获取指定图书和所有图书的相关方法 * */ public class BookDB { private static Mapbooks=new LinkedHashMap(); static{ books.put("1", new Book("1","javaweb开发")); books.put("2", new Book("2","jdbc开发")); books.put("3", new Book("3","java编程思想")); books.put("4", new Book("4","java开发")); books.put("5", new Book("5","c#")); books.put("6", new Book("6","javascript开发")); books.put("7", new Book("7","计算机组成原理")); books.put("8", new Book("8","计算机网络基础")); } //获得所有的图书 public static Collection getAll(){ return books.values(); } //根据指定的id获得图书 public static Book getBook(String id){ return books.get(id); } }
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 { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); Collectionbooks=BookDB.getAll(); out.write("本站提供的图书如下: "); for(Book book : books){ String url = "/bookshop/PurchaseServlet?id="+book.getId(); out.write(book.getName()+"点击购买 "); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
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; /* * 该类有两个功能,一个是将用户购买的图书信息保存到Session对象中,一个是在用户购买图书之后,将页面重定向到 * 用户已经购买的图书列表。该类在实现时,通过ArrayList集合模拟一个购物车,将购买的所有图书添加到购物车中 * 最后通过Session对象传递给CartServlet,由CartServlet展示用户已经购买的图书 * * */ public class PurchaseServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); //获得用户购买的商品 String id=request.getParameter("id"); if(id==null){ //如果id为null,重定向到ListBookServlet页面 String url="/bookshop/PurchaseServlet"; response.sendRedirect(url); return; } Book book = BookDB.getBook(id); //创建或者获得用户的Session对象 HttpSession session = request.getSession(); //从Session对象中获得用户的购物车 Listcart=(List)session.getAttribute("cart"); if(cart==null){ //首次购买,为用户创建一个购物车(List集合模拟购物车) cart=new ArrayList(); //将购物车存入Session对象 session.setAttribute("cart", cart); } //将商品放入购物车 cart.add(book); //创建Cookie存放Session的标识号 Cookie cookie=new Cookie("JSESSIONID",session.getId()); cookie.setMaxAge(60*30); cookie.setPath("/bookshop"); response.addCookie(cookie); //重定向到购物车页面 String url="/bookshop/CartServlet"; response.sendRedirect(url); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
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; /* * 该类用于展示用户已经购买的图书列表。该类在实现时,需要通过getSession()获取所有的Session对象,然后判断 * 用户是否已经购买了书籍,如果购买了,则显示购买的图书列表,否则显示:对不起,您还未购买图书! * * */ public class CartServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); //变量cart引用用户的购物车 Listcart=null; //变量purFlag标记用户是否购买过商品 boolean purFlag=true; //获得用户的session HttpSession session = request.getSession(false); //如果session为null,purFlag置为false if(session==null){ purFlag=false; }else{ //获得用户购物车 cart=(List)session.getAttribute("cart"); //如果用的购物车为null,purFlag为false if(cart==null){ purFlag=false; } } /* * 如果purFlag为flase,表明用户没有购买书,重新定向到ListBookServlet页面 * * */ if(!purFlag){ out.write("对不起,您还未购买商品! "); }else{ //否则显示用户购买的商品信息 out.write("您购买的图书有: "); for(Book book:cart){ out.write(book.getName()+" "); } } out.write("返回图书列表"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
在配置好web.xml后,可按照预期的正常进行!但是感觉这更像是一个购物车功能,算了,无所谓了,之后自己按照自己的想法做一个吧。
┐( ̄ヮ ̄)┌
相关文章推荐
- Avalonjs 实现简单购物车功能(实例代码)
- php 实现简单购物车功能(2)
- Session简单实现购物功能
- PHP 实现简单购物车功能(2)
- Session用法案例 -->实现简单购物车功能(实际项目可能不会这么使用)
- 如何用C#在winform中实现简单的查找功能
- 限次版功能的简单实现
- 用Application轻松实现在线客服(简单的QQ聊天功能)
- XML与ASP简单结合实现HTML模板功能
- 一种简单方法实现页面导出(Excel)功能
- 用最简单的办法,实现最好的打印(用BCB调用记事本的打印功能)
- 基于web的QQ实现代码(asp) ——在网叶(web)上实现简单QQ功能(转)
- 一种简单方法实现页面导出(Excel)功能 选择自 xieyun1977 的 Blog
- 我写的一个简单触发器,实现计票功能
- 用最简单的办法,实现最好的打印(用BCB调用WORD的打印功能)
- 用最简单的办法,实现最好的打印(用BCB调用WORD的打印功能)
- vb.net2005中回调功能的简单实现
- XML与ASP简单结合实现HTML模板功能
- 最简单的实现层的可拉伸功能
- XML与ASP简单结合实现HTML模板功能