JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能
继续来做案例练习,本篇学习如何删除图书,也就是在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- 完成图书删除功能相关推荐
- JavaWeb学习-案例练习-图书管理前台-9-分页功能实现
前面一篇完成了多条件的查询,这篇开始学习分页,很多网页是默认显示20条数据,想看更多数据,就通过点击下一页的方式实现.这篇就来模拟这个分页实现过程. 1.项目环境准备 之前我们实现的都是图书管理后台功 ...
- JavaWeb学习案例——学生管理系统
JavaWeb学习案例--学生管理系统 引入jar包: 1. c3p0-0.9.1.2.jar // 第三方数据库连接池 2.commons-dbutils-1.4.jar // 第三方数据库操作方法 ...
- JavaWeb学习-案例练习-图书管理前台-10- 图书详情页的实现
前面一篇实现了前端图书列表的分页操作,可以点击上一页和下一页,这个我们实现每个页面显示4本书,实际开发中,一般设置20条记录或者40条记录,这个实现原理是一样的.这篇来学习,在前端页面点击这本书的名称 ...
- JavaWeb阶段案例--简易版管理图书系统(增删改查)
1. 创建数据库及数据表 #创建数据库jdbc CREATE DATABASE jdbc ;#打开数据库 USE jdbc ;#创建用户表 t_user CREATE TABLE t_user(id ...
- 图书管理后台简单实现(三)
继续填坑,把剩余部分写完 图书的增删改查 直接上代码 //BookServlet package com.oracle.controller; public class BookServlet ext ...
- 图书管理分类统计c语言,图书管理完整系统(c语言).doc
图书管理完整系统(c语言) 程序设计方法课程设计 问题提出: 设计一个图书馆的图书管理,具体要求如下: 1.录入新采购的图书信息,做成文件book.in,要求有良好的输入界面: 2.查询各种图书的基本 ...
- 从零开始搭建一个web图书管理项目(增删改查功能)
参考资料:https://blog.csdn.net/qq_23994787/article/details/73612870 http://how2j.cn/ 实习第一周,写下一些在建立web项目中 ...
- 金蝶K3案例教程采购管理后台配置
目录 采购系统选项 采购业务流程设计 单据设置 打印控制 采购价格参数设置 付款条件 采购系统选项 案例 erplabs整机公司要求采购订单数量不能超过采购申请数量:要求采购订单入库数量不允许超过订单 ...
- 用友U8案例实验应收管理后台配置
目录 应收参数设置 应收会计科目设置 本单位开户银行 收付款协议档案 应收模块凭证科目设置 期初余额 应收参数设置 案例 erplabs整机公司应收模块与销售模块集成使用,销售发票在销售模块生成并传递 ...
最新文章
- 使用多个推理芯片需要仔细规划
- Linux_CentOS-服务器搭建 六
- 如何让多端口网站用一个nginx进行反向代理实际场景分析
- App Start Up Step
- 用webpack打包加密静态配置文件
- 大专计算机办公应用,计算机办公软件应用论文
- 专利交底书怎么写 -
- X86汇编语言经典资料,初学者必看(转)
- jquery 绑定双击事件优化
- NVDIMM 知识点
- 关于烂代码优化重构的几点经验
- Webrtc Native C++在root模式下启用PulseAudio,音频采集替换为ALSA模式
- Prometheus普罗米修斯部署
- NanoPC-T4|Android-Q Mali-T860 GPU驱动
- 至少要几个砝码,可以称出 1g ~ 40g 重量
- sorry you must accept the license agreement before
- 那些曾经的转正工作总结...
- 【计算机组装与网络布线】计算机组装与维护(一)——计算机核心硬件及重要接口的再认识
- 计算机语音输入和存储,语音输入输出装置
- C语言(数据结构) - 链表的基本操作