利用Session实现简单购物

来源:互联网 发布:华硕网络控制器驱动 编辑:程序博客网 时间:2024/05/21 17:55

ListCartServlet.java为:

package SessionDemo;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 ListCartServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{//解决中文乱码问题response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();HttpSession session = request.getSession(false);if (session==null){out.write("您没有购买任何商品!");return;}out.write("您购买了如下商品:</br>");List<Book> list = (List) session.getAttribute("list");for(Book book : list){out.write(book.getName());}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{doGet(request, response);}}

BuyServlet.java为

package SessionDemo;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;public class BuyServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{String id = request.getParameter("id");Book book = (Book) Db.getAll().get(id);HttpSession session = request.getSession(false);//从session中得到用户用于保存书的所有集合(购物车)List list = (List) session.getAttribute("list");if(list==null){list = new ArrayList();session.setAttribute("list",list);}list.add(book);//利用重定向String url = response.encodeRedirectURL(request.getContextPath()+"/servlet/ListCartServlet");response.sendRedirect(url);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{doGet(request, response);}}

ListBookServlet.java为

package SessionDemo;import java.io.IOException;import java.io.PrintWriter;import java.io.Serializable;import java.util.LinkedHashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ListBookServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{//解决中文乱码问题response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();request.getSession();//输出所有商品out.write("网站商品如下 : </br>");Map<String,Book> map = Db.getAll();for(Map.Entry<String,Book> entry : map.entrySet()){Book book = entry.getValue();String url = response.encodeRedirectURL("/SessionTest/servlet/BuyServlet?id="+book.getId());String str=book.getName()+"<a href='"+url+"'target='_blank'>购买</a></br>";out.write(str);}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{doGet(request, response);}}//用类来简单模拟数据库class Db{private static Map<String,Book> map = new LinkedHashMap<String, Book>(); static{map.put("1",new Book("1","Java开发","赵钱","好书啊。"));map.put("2",new Book("2","JavaWeb开发","孙李","好书啊。"));map.put("3",new Book("3","Jdbc开发","周武","好书啊。"));map.put("4",new Book("4","Spring开发","郑王","好书啊。"));map.put("5",new Book("5","Android开发","马六","好书啊。"));}public static Map getAll(){return map;}}//创建Book类class Book implements Serializable{private String id;private String name;private String author;private String description;public Book(){super();}public Book(String id, String name, String author, String description){super();this.id = id;this.name = name;this.author = author;this.description = description;}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;}public String getAuthor(){return author;}public void setAuthor(String author){this.author = author;}public String getDescription(){return description;}public void setDescription(String description){this.description = description;}}

在浏览器中加载ListBookServlet

点击“购买”一个商品

然后在购买一个商品会发现

0 0
原创粉丝点击