在6.3节简易购物车的cart.jsp中每个商品后添加删除的超链接,单击后,能够将该商品从购物车中移出。思路:在Cart.Java中增加一个删除商品的方法,然后编写一个处理删除请求的Servlet,调用Cart对象的删除商品方法。
时间: 2024-12-06 11:23:01 浏览: 20
在6.3节的简易购物车项目中,要在`cart.jsp`页面上添加删除商品的链接,首先需要在`Cart` Java类中添加一个名为`removeItem`的方法,这个方法接收商品ID作为参数,并从购物车列表中移除对应的商品。例如:
```java
public class Cart {
// ...
public void removeItem(int itemId) {
cartItems.removeIf(item -> item.getItemId() == itemId);
}
// 其他方法...
}
```
接下来,你需要创建一个新的Servlet来处理删除操作。当用户点击删除链接时,会发送一个HTTP DELETE请求到这个Servlet。在Servlet中,你可以通过解析请求参数获取商品ID,然后调用`CartItem`实例的`remove()`方法,进一步调用`Cart`的`removeItem`方法来执行删除操作。
```java
// 假设这是DeleteCartServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int itemId = Integer.parseInt(request.getParameter("itemId"));
Cart cart = (Cart) request.getSession().getAttribute("cart");
if (cart != null) {
cart.removeItem(itemId);
// 更新session或数据库状态
}
// 重定向回cart.jsp页面,显示新的购物车内容
response.sendRedirect("cart.jsp");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 如果是GET请求,可以显示错误信息或提示用户只能通过POST删除商品
}
```
在`cart.jsp`中,你需要为每个商品生成一个HTML表单元素,包含商品名称和一个隐藏的`itemId`字段以及删除按钮,像这样:
```html
<td><a href="${pageContext.request.contextPath}/DeleteCartServlet?itemId=<%=item.getItemId()%>">删除</a></td>
```
阅读全文