需求:使用session实现添加购物车功能
实现:
- 首先创建一个实物类,包括ID,书名,老师,单价,数量
- 创建添加界面和购物车界面
- 实现后台服务器添加serlvet程序
目录结构:
购物车界面:ShoppingCar:
<%@ page import="bean.ShoppingBean"%>
<%@ page import="java.util.ArrayList"%>
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
<title>购物车</title>
</head>
<body style="text-align: center;">
<H1>购物车</H1>
<table border="1" align="center">
<tr>
<td width="100px" align="center">课程</td>
<td width="100px" align="center">老师</td>
<td width="100px" align="center">单价</td>
<td width="100px" align="center">数量</td>
</tr>
<%
request.setCharacterEncoding("utf-8");
ArrayList<ShoppingBean> beans = (ArrayList<ShoppingBean>)session.getAttribute("list");
if (beans == null){
out.println(" <tr>\n " +
" <td width=\"100px\" align=\"center\" colspan='4' >购物车为空</td>\n" +
" </tr>");
}
else {
for (ShoppingBean bean : beans) {
String course = bean.getCourse();
String teacher = bean.getTeacher();
Double price = bean.getPrice();
int num = bean.getNum();
out.println(" <tr>\n" +
" <td width=\"100px\" align=\"center\" >" + course + "</td>\n" +
" <td width=\"100px\" align=\"center\" >" + teacher + "</td>\n" +
" <td width=\"100px\" align=\"center\" >" + price + "</td>\n" +
" <td width=\"100px\" align=\"center\" >" + num + "</td>\n" +
" </tr>");
}
}
%>
</table>
</body>
</html>
添加购物界面addShopping:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加购物车</title>
</head>
<body style="text-align: center;">
<h1 style="color: red">添加购物车</h1>
<hr>
<form action="AddShoppingServlet" name="regform" method="post">
<table align="center">
<tr>
<td>课程:</td>
<td><input type="text" name="course"/></td>
</tr>
<tr>
<td>老师:</td>
<td><input type="text" name="teacher"/></td>
</tr>
<tr>
<td>单价:</td>
<td><input type="text" name="price"/></td>
</tr>
<tr>
<td>数量:</td>
<td><input type="text" name="num"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="添加购物车" name="添加"/></td>
</tr>
</table>
</form>
</body>
</html>
后台服务器AddShoppingServlet程序:
package servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import bean.ShoppingBean;
/**
* Servlet implementation class AddShoppingServlet
*/
public class AddShoppingServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AddShoppingServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码格式
resp.setContentType("text/html,charset=utf-8");
HttpSession session = req.getSession();
//获取输入的图书信息
String course = req.getParameter("course");
String teacher = req.getParameter("teacher");
String price = req.getParameter("price");
String num = req.getParameter("num");
//
ArrayList<ShoppingBean> shoppingBeans = (ArrayList<ShoppingBean>) session.getAttribute("list");
ArrayList<ShoppingBean> resultBeans = new ArrayList<>();
if (shoppingBeans != null){
resultBeans = shoppingBeans;
}
//
ShoppingBean shoppingBean = new ShoppingBean();
//设置购物车图书信息
shoppingBean.setId(resultBeans.size());
shoppingBean.setCourse(course);
shoppingBean.setTeacher(teacher);
shoppingBean.setPrice(Double.valueOf(price));
shoppingBean.setNum(Integer.valueOf(num));
//添加到购物车
resultBeans.add(shoppingBean);
//
session.setAttribute("list", resultBeans);
resp.sendRedirect(req.getContextPath() + "/shoppingCar.jsp");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
实物类ShoppingBean:
package bean;
public class ShoppingBean {
private int id;
private String course;
private String teacher;
private Double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
private int num;
}
演示:
1、第一次进入购物车:
2、进入添加界面,添加
3、添加成功