本文章主要介绍了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%"><a 
 href="${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%"><a 
										 
href="javascript:delBook('${b.id }')"> 
<img 
											 
src="${pageContext.request.contextPath}/admin/images/i_del.gif"										 
 
width="16" height="16" border="0" style="CURSOR: hand">

发布评论
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

JavaWeb学习-案例练习-图书管理后台-6-全选思路和实现过程详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。