用session实现简单的购物

 1 package cn.itcast.shopping;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.Map;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 
12 import cn.itcast.Book;
13 import cn.itcast.Db;
14 
15 public class ListBookServlet extends HttpServlet {
16 
17     public void doGet(HttpServletRequest request, HttpServletResponse response)
18             throws ServletException, IOException {
19 
20         response.setCharacterEncoding("UTF-8");
21         response.setContentType("text/html;charset=UTF-8");
22         PrintWriter out = response.getWriter();
23         
24         out.write("本网站有如下商品:<br/>");
25         Map<String,Book> map = Db.getAll();
26         for (Map.Entry<String, Book> entry : map.entrySet()) {
27             Book book = entry.getValue();
28             out.print(book.getName()+"<a href='/ServletDemo/servlet/BuyServlet?id="+book.getId()+"' target='_blank'>购买</a><br/>");
29         }
30         
31     }
32 
33     public void doPost(HttpServletRequest request, HttpServletResponse response)
34             throws ServletException, IOException {
35 
36         
37     }
38 
39 }
View Code
 1 package cn.itcast.shopping;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.ArrayList;
 6 import java.util.List;
 7 
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import javax.servlet.http.HttpSession;
13 
14 import cn.itcast.Book;
15 import cn.itcast.Db;
16 
17 //完成购买
18 public class BuyServlet extends HttpServlet {
19 
20     
21     public void doGet(HttpServletRequest request, HttpServletResponse response)
22             throws ServletException, IOException {
23 
24          String id = request.getParameter("id");
25          Book book = (Book) Db.getAll().get(id);
26         
27          HttpSession session =request.getSession();
28          
29          //从Session得到用户名用于保存所有书的集合(购物车)
30          List list = (List) session.getAttribute("list");
31          if(list==null){
32              list = new ArrayList();
33              session.setAttribute("list", list);
34          }
35          list.add(book);
36          
37         // request.getRequestDispatcher("/servlet/ListCarServlet").forward(request, response);
38          response.sendRedirect(request.getContextPath()+"/servlet/ListCarServlet");
39     }
40 
41     public void doPost(HttpServletRequest request, HttpServletResponse response)
42             throws ServletException, IOException {
43 
44     }
45 
46 }
View Code
 1 package cn.itcast.shopping;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.List;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 import javax.servlet.http.HttpSession;
12 
13 import cn.itcast.Book;
14 
15 //显示用户购买商品
16 public class ListCarServlet extends HttpServlet {
17 
18     public void doGet(HttpServletRequest request, HttpServletResponse response)
19             throws ServletException, IOException {
20         
21         response.setCharacterEncoding("UTF-8");
22         response.setContentType("text/html;charset=UTF-8");
23         PrintWriter out = response.getWriter();
24 
25         HttpSession session = request.getSession(false);
26         if(session==null){
27             out.write("您没有购买任何商品!!");
28             return;
29         }
30         
31         out.write("您购买了如下商品:<br/>");
32         List<Book> list = (List) session.getAttribute("list");
33         for(Book book : list){
34             out.write(book.getName());
35         }
36     }
37 
38     
39     public void doPost(HttpServletRequest request, HttpServletResponse response)
40             throws ServletException, IOException {
41 
42         
43     }
44 
45 }
View Code
 1 package cn.itcast;
 2 
 3 import java.util.LinkedHashMap;
 4 import java.util.Map;
 5 
 6 public class Db {
 7     private static Map<String, Book> map = new LinkedHashMap();
 8     
 9     static{
10         map.put("1", new Book("1","javaweb开发","Zero","一本好书!!"));
11         map.put("2", new Book("2","jdbc开发","one","一本好书!!"));
12         map.put("3", new Book("3","spring开发","two","一本好书!!"));
13         map.put("4", new Book("4","struks开发","three","一本好书!!"));
14         map.put("5", new Book("5","hibernate开发","four","一本好书!!"));
15     }
16     
17     public static Map getAll(){
18         return map;
19     }
20 }
View Code
 1 package cn.itcast;
 2 
 3 import java.io.Serializable;
 4 
 5 
 6 public class Book implements Serializable {
 7     private String id;
 8     private String name;
 9     private String author;
10     private String description;
11     
12     public Book(String id, String name, String author, String description) {
13         super();
14         this.id = id;
15         this.name = name;
16         this.author = author;
17         this.description = description;
18     }
19 
20     public String getId() {
21         return id;
22     }
23 
24     public void setId(String id) {
25         this.id = id;
26     }
27 
28     public String getName() {
29         return name;
30     }
31 
32     public void setName(String name) {
33         this.name = name;
34     }
35 
36     public String getAuthor() {
37         return author;
38     }
39 
40     public void setAuthor(String author) {
41         this.author = author;
42     }
43 
44     public String getDescription() {
45         return description;
46     }
47 
48     public void setDescription(String description) {
49         this.description = description;
50     }
51 }
View Code

 

转载于:https://www.cnblogs.com/aineko/p/3834771.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值