1、购买界面
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
public class ListBookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
Collection books = BookDB.getAll();
out.write("本站提供的图书有:
");
for(book bok:books){
String url = "/demo_war_exploded/xax?id="+ bok.getId();
out.write(bok.getName()+"点击购买
");
}
}
}
2、购物车界面
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
public class fx extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//变量cart引用用户的购物车
List cart = null;
//变量pruFlag标记用户是否买过商品
boolean purFlag = true;
//获取用户的session
HttpSession session = request.getSession(false);
//如果session为null,pruFlag置为false
if(session == null){
purFlag = false;
}else {
//获得用户购物车
cart = (List)session.getAttribute("cart");
//如果用的购物车为null,pruFlag置为false
if(cart == null){
purFlag = false;
}
}
if(!purFlag){
out.write("对不起!您没有购买任何商品!
");
}else {
//否则显示用户购买图书的信息
out.write("您购买的图书有:
");
double price = 0;
for(book bok:cart){
out.write(bok.getName()+"
");
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.doGet(request,response);
}
}
3、图书类封装书的信息
import java.io.Serializable;
public class book implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
public book(){}
public book(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;
}
}
4、数据库模拟类
import java.util.Collection;
import java.util.linkedHashMap;
import java.util.Map;
public class BookDB {
private static Map books = new linkedHashMap<>();
static {
books.put("1",new book("1","javaweb开发"));
books.put("2",new book("2","jdbc开发"));
books.put("3",new book("3","java开发"));
books.put("4",new book("4","structs开发"));
books.put("5",new book("5","spring开发"));
}
//获得所有图书
public static Collection getAll(){
return books.values();
}
//根据指定的id获得图书
public static book getBook(String id){
return books.get(id);
}
}
5、保存购书信息
import javax.servlet.http.*;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class ax extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String id = request.getParameter("id");
if(id == null){
String url = "/demo_war_exploded/lbs";
response.sendRedirect(url);
return;
}
book Book = BookDB.getBook(id);
HttpSession session = request.getSession();
//从Session对象中获得用户的购物车
List cart = (List) session.getAttribute("cart");
if(cart == null){
//首次购买,为用户创建一个购物车
cart = new ArrayList<>();
//将购物车存入Session对象
session.setAttribute("cart",cart);
}
cart.add(Book);
cookie cookie = new cookie("JSESSIONID",session.getId());
cookie.setMaxAge(60*30);
cookie.setPath("/demo");
response.addcookie(cookie);
//重定向到购物车页面
response.sendRedirect("/demo_war_exploded/xfx");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.doGet(request,response);
}
}
6、xml配置信息
companyName
fx
address
ty
fx
fx
fx
/xfx
ax
ax
ax
/xax
ListBookServlet
ListBookServlet
ListBookServlet
/lbs