栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java Web程序设计第9章课后第2题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Web程序设计第9章课后第2题

  1. 在上题中图书信息的后面增加一个“添加到购物车”链接,单击可以将图书添加到购物车。在页面底部有一个“查看购物车”链接,可以到另一个页面中查看购物车中的内容。在购物车内容显示时,后面有一个“从购物车中删除”链接,单击,又能将该图书从购物车中删除。要求所有的动作由Servlet完成。
解析

先完成第一题
仿照search.jsp,写个cart.jsp。注意“删除”是一个超链接,并且在链接后面还要跟上id这个参数,方便后面Servlet的删除操作(其实传递数组下标会更加方便)

购物车


<% ArrayList cart = (ArrayList) session.getAttribute("cart"); if (cart != null) { %> <% for (book b : cart) { out.print(""); out.print(""); out.print(""); out.print(""); out.print(String.format("", b.id)); out.print(""); } } %>
图书ID 图书名称 图书价格 操作
" + b.id + "" + b.name + "" + b.price + "删除

返回查询页面

记得在search,jsp中加上超链接跳转到cart.jsp

查看购物车

然后再写DeleteServlet,一些细节参见注释

@WebServlet(name = "DeleteServlet", urlPatterns = {"/deleteServlet"})
public class DeleteServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 处理响应乱码
        response.setContentType("text/html;charset=utf-8");

        // 处理请求乱码
        request.setCharacterEncoding("utf-8");

        HttpSession session = request.getSession();
        ArrayList cart = (ArrayList) session.getAttribute("cart");
        String id = request.getParameter("id");
        if (id != null && cart != null) {
            for (book b : cart) {
                if (b.id.equals(id)) {  // 其实也可以根据下标删除,但是我这里懒得改了
                    cart.remove(b);
                    break;
                }
            }
            session.setAttribute("cart", cart);  // 要把修改后的cart存入session
            PrintWriter out = response.getWriter();
            out.print("");  // 记得跳转回cart.jsp。我在这里还加了个提示框表明删除成功
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
代码

cart.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="chapter9.book" %>
<%@ page import="java.util.ArrayList" %>


    购物车


购物车


<% ArrayList cart = (ArrayList) session.getAttribute("cart"); if (cart != null) { %> <% for (book b : cart) { out.print(""); out.print(""); out.print(""); out.print(""); out.print(String.format("", b.id)); out.print(""); } } %>
图书ID 图书名称 图书价格 操作
" + b.id + "" + b.name + "" + b.price + "删除

返回查询页面

DeleteServlet.java

package chapter9.servlet;

import chapter9.book;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;

@WebServlet(name = "DeleteServlet", urlPatterns = {"/deleteServlet"})
public class DeleteServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 处理响应乱码
        response.setContentType("text/html;charset=utf-8");

        // 处理请求乱码
        request.setCharacterEncoding("utf-8");

        HttpSession session = request.getSession();
        ArrayList cart = (ArrayList) session.getAttribute("cart");
        String id = request.getParameter("id");
        if (id != null && cart != null) {
            for (book b : cart) {
                if (b.id.equals(id)) {
                    cart.remove(b);
                    break;
                }
            }
            session.setAttribute("cart", cart);
            PrintWriter out = response.getWriter();
            out.print("");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572258.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号