本文實例講述了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); }}
希望本文所述對大家Java web程序設計有所幫助。
新聞熱點
疑難解答