1.Arms.java2.ArmsDB.java3.ListArmsServlet.java4.PurchaseArms.java5.CartServlet.java
1.Arms.javapackage top.imustshop;
import java.io.Serializable;
public class Arms implements Serializable {
private static final long serialVersionUID=1L;
private String id;
private String name;
public Arms(){
}
public Arms(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;
}
}
2.ArmsDB.java
package top.imustshop;
import java.util.Collection;
import java.util.linkedHashMap;
import java.util.Map;
public class ArmsDB {
private static Map Arms = new linkedHashMap();
static {
Arms.put("1", new Arms("1", "W8fuckcdn"));
Arms.put("2", new Arms("2", "御剑"));
Arms.put("3", new Arms("3", "中国蚁剑"));
Arms.put("4", new Arms("4", "unlead gif"));
Arms.put("5", new Arms("5", "Wireshark"));
}
public static Collection getAll() {
return Arms.values();
}
public static Arms getArms(String id) {
return Arms.get(id);
}
}
3.ListArmsServlet.java
package top.imustshop;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
public class ListArmsServlet extends HttpServlet {
private static final long serialVersionUID=1L;
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
Collection Arms = ArmsDB.getAll();
out.write("军火库:
");
for(Arms Arm:Arms){
String url ="/purchase?id="+Arm.getId();
HttpSession s=req.getSession();
String newUrl=resp.encodeRedirectURL(url);
out.write(Arm.getName()+" "+"+newUrl
+"'>点击购买
");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
4.PurchaseArms.java
package top.imustshop;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class PurchaseArms extends HttpServlet {
private static final long serialVersionUID=1L;
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取用户购买的商品,指定id的
String id = req.getParameter("id");
if (id == null) {
// 如果id为null,重定向到listarms页面
String url = "/listarms";
resp.sendRedirect(url);
return;
}
Arms book = ArmsDB.getArms(id);
// 创建或者获得用户的Session对象
HttpSession session = req.getSession();
// 从Session对象中获得用户的购物车
List cart = (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("/");
resp.addcookie(cookie);
// 重定向到购物车页面
String url = "/cart";
String newurl = resp.encodeRedirectURL(url);
resp.sendRedirect(newurl);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
5.CartServlet.java
package top.imustshop;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
public class CartServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
List cart = null;
// 变量purFlag标记用户是否买过软件
boolean purFlag = true;
// 获得用户的session
HttpSession session = req.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;
}
}
if (!purFlag) {
out.write("对不起!您还没有购买任何商品!
");
} else {
// 否则显示用户购买软件列表的信息
out.write("您购买的软件列表:
");
double price = 0;
for (Arms arm : cart) {
out.write(arm.getName() + "
");
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
在不懂代码原理的时候,请勿直接粘贴代码



