Java Web Session购物商店小实例
package cn.com.shopping;import java.io.IOException;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 {private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String id=request.getParameter("id");Book book=(Book)Db.getAll().get(id);//再加上那个关闭Cookie时session的剞劂方案//阻止session的时候解决方案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("/Session/SessionCountDemo");response.sendRedirect(url);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}}package cn.com.shopping;import java.io.IOException;import java.io.PrintWriter;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;import javax.servlet.http.HttpSession;//显示书public class ListBookServlet extends HttpServlet {private static final long serialVersionUID = 1L; protected 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();out.print("本店有如下的商品:<br/>");Map<String ,Book > map=Db.getAll();for(Map.Entry<String, Book> entry:map.entrySet()){Book book=entry.getValue();String url=response.encodeURL("/Session/BuyServlet?id="+book.getId());out.print(book.getName()+"<a href='"+url+"' target='_blank' >购买</a><br/>");}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}}//Db作为数据库class Db{private static Map<String ,Book> map=new LinkedHashMap();static{map.put("1", new Book("1","Java WEB开发","WY","好书"));map.put("2", new Book("2","WEB开发","zt","一般"));map.put("3", new Book("3","程序设计","df","较好书"));map.put("4", new Book("4","计算机组成","as","一般好书"));map.put("5", new Book("5","编译原理","ty","很好书"));map.put("6", new Book("6","网络维护","hj","非常好书"));}public static Map getAll(){return map;}}//书class Book{private String id;private String name;private String author;private String description;public Book() {super();// TODO Auto-generated constructor stub}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;}}package cn.com.shopping;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 SessionCountDemo extends HttpServlet {private static final long serialVersionUID = 1L; protected 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();if(session==null){out.write("您没买任何的商品!");return;}out.write("您购买了如下的商品:");List<Book> list=(List) session.getAttribute("list");for(Book book:list){out.write(book.getName());}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}}