继续来做案例练习,本篇学习如何删除图书,也就是在list.jsp页面的图书列表中,点击删除按钮,这条图书记录信息就从列表消失,然后相当于刷新当前页面,列表就少了一条图书记录。

1.需求场景

例如把Python入门这本书删除。

2.思路分析

还是画一个图,和前面一样。

红圈就是我们本篇的内容,简单来说,点击删除这个链接,需要把该图书的id传进去,然后跳转到一个delBookServlet的servlet,然后Dao层执行delete语句,最后跳转到BookListServlet再查询一下图书数据,显示list.jsp页面上。

3.代码实现

3.1 修改list.jsp中删除链接的跳转信息

项目中找到/admin/products/list.jsp, 大概在140-145行代码附件,给这个删除图片条件跳转链接。

<td align="center" style="HEIGHT: 22px" width="7%"><ahref="${pageContext.request.contextPath}/delBookServlet?id=${b.id}">
<img                                 src="${pageContext.request.contextPath}/admin/images/i_del.gif"
width="16" height="16" border="0" style="CURSOR: hand">
</a>
</td>

3.2 创建一个空的delBookServlet文件

Eclipse上右键菜单选择servlet,会自动配置web.xml

3.3 Dao层添加执行删除的sql语句

在BookDao接口中添加如下方法(原有基础上新增)

/*** 根据id删除图书* @param id* @return* @throws SQLException*/public void delBook(String id) throws SQLException;

BookDaoImpl.java新增实现方法

    public void delBook(String id) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());qr.update("delete from book where id=?", id);}

3.4 service添加删除图书方法

BookService接口添加如下方法

public void delBook(String id);

BookServiceImpl.java新增如下方法

    public void delBook(String id) {try {bd.delBook(id);} catch (SQLException e) {e.printStackTrace();}}

3.4 DelBookServlet完整代码

package com.anthony.web.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.anthony.service.BookService;
import com.anthony.service.BookServiceImpl;public class DelBookServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String id = request.getParameter("id");BookService bs = new BookServiceImpl();bs.delBook(id);//转发request.getRequestDispatcher("/bookListServlet").forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

3.5测试

测试就不贴结果,练习了好几次这样的练习,我一次性就写对了删除功能的代码,没有任何错误和调试过程。但是这么做有一点不友好,万一点错了也进行删除,所以需要添加一个询问用户是否确认要删除的弹窗。

这个效果是这实现的。

先写一个js代码,一个函数,然后在点击删除图片这里调用这个js代码就可以。

function delBook(id){if(confirm("是否确定删除图书?"+id)){location.href="${pageContext.request.contextPath}/delBookServlet?id=" + id;}}

上面这段代码大概写16行到20行之间,然后140行附近这个跳转代码这样写。

<td align="center" style="HEIGHT: 22px" width="7%"><ahref="javascript:delBook('${b.id }')">
<imgsrc="${pageContext.request.contextPath}/admin/images/i_del.gif"                                       width="16" height="16" border="0" style="CURSOR: hand">

JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能相关推荐

  1. JavaWeb学习-案例练习-图书管理前台-9-分页功能实现

    前面一篇完成了多条件的查询,这篇开始学习分页,很多网页是默认显示20条数据,想看更多数据,就通过点击下一页的方式实现.这篇就来模拟这个分页实现过程. 1.项目环境准备 之前我们实现的都是图书管理后台功 ...

  2. JavaWeb学习案例——学生管理系统

    JavaWeb学习案例--学生管理系统 引入jar包: 1. c3p0-0.9.1.2.jar // 第三方数据库连接池 2.commons-dbutils-1.4.jar // 第三方数据库操作方法 ...

  3. JavaWeb学习-案例练习-图书管理前台-10- 图书详情页的实现

    前面一篇实现了前端图书列表的分页操作,可以点击上一页和下一页,这个我们实现每个页面显示4本书,实际开发中,一般设置20条记录或者40条记录,这个实现原理是一样的.这篇来学习,在前端页面点击这本书的名称 ...

  4. JavaWeb阶段案例--简易版管理图书系统(增删改查)

    1. 创建数据库及数据表 #创建数据库jdbc CREATE DATABASE jdbc ;#打开数据库 USE jdbc ;#创建用户表 t_user CREATE TABLE t_user(id ...

  5. 图书管理后台简单实现(三)

    继续填坑,把剩余部分写完 图书的增删改查 直接上代码 //BookServlet package com.oracle.controller; public class BookServlet ext ...

  6. 图书管理分类统计c语言,图书管理完整系统(c语言).doc

    图书管理完整系统(c语言) 程序设计方法课程设计 问题提出: 设计一个图书馆的图书管理,具体要求如下: 1.录入新采购的图书信息,做成文件book.in,要求有良好的输入界面: 2.查询各种图书的基本 ...

  7. 从零开始搭建一个web图书管理项目(增删改查功能)

    参考资料:https://blog.csdn.net/qq_23994787/article/details/73612870 http://how2j.cn/ 实习第一周,写下一些在建立web项目中 ...

  8. 金蝶K3案例教程采购管理后台配置

    目录 采购系统选项 采购业务流程设计 单据设置 打印控制 采购价格参数设置 付款条件 采购系统选项 案例 erplabs整机公司要求采购订单数量不能超过采购申请数量:要求采购订单入库数量不允许超过订单 ...

  9. 用友U8案例实验应收管理后台配置

    目录 应收参数设置 应收会计科目设置 本单位开户银行 收付款协议档案 应收模块凭证科目设置 期初余额 应收参数设置 案例 erplabs整机公司应收模块与销售模块集成使用,销售发票在销售模块生成并传递 ...

最新文章

  1. 使用多个推理芯片需要仔细规划
  2. Linux_CentOS-服务器搭建 六
  3. 如何让多端口网站用一个nginx进行反向代理实际场景分析
  4. App Start Up Step
  5. 用webpack打包加密静态配置文件
  6. 大专计算机办公应用,计算机办公软件应用论文
  7. 专利交底书怎么写 -
  8. X86汇编语言经典资料,初学者必看(转)
  9. jquery 绑定双击事件优化
  10. NVDIMM 知识点
  11. 关于烂代码优化重构的几点经验
  12. Webrtc Native C++在root模式下启用PulseAudio,音频采集替换为ALSA模式
  13. Prometheus普罗米修斯部署
  14. NanoPC-T4|Android-Q Mali-T860 GPU驱动
  15. 至少要几个砝码,可以称出 1g ~ 40g 重量
  16. sorry you must accept the license agreement before
  17. 那些曾经的转正工作总结...
  18. 【计算机组装与网络布线】计算机组装与维护(一)——计算机核心硬件及重要接口的再认识
  19. 计算机语音输入和存储,语音输入输出装置
  20. C语言(数据结构) - 链表的基本操作

热门文章

  1. 2022年中级会计中级经济学法考试复习题及答案
  2. 聊天软件端到端加密使用的什么算法?是否能防止第三方抓包软件?
  3. SolidWorks 2023软件安装教程SW2023软件安装包
  4. vue3 setup语法糖与原始写法对比
  5. 关于send和recv在UDP的使用
  6. Linux驱动编写入门-新解
  7. 为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
  8. 虎牙盈利能力得到改善,但监管风险对其收入产生负面影响
  9. python爬虫公众号音频源代码_python爬取音频下载的示例代码
  10. HostDeny解除封禁IP