博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目阶段三:图书模块的增删改查
阅读量:3965 次
发布时间:2019-05-24

本文共 4632 字,大约阅读时间需要 15 分钟。

编写图书模块的 Web 层,和页面联调测试

5.1、图书列表功能的实现

1、图解列表功能流程

在这里插入图片描述

2、BookServlet 程序中添加 list 方法

protected void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1 通过BookService查询全部图书 List
books = bookService.queryBooks(); //2 把全部图书保存到Request域中 req.setAttribute("books",books); //3、请求转发到/pages/manager/book_manager.jsp页面 req.getRequestDispatcher("/pages/manager/book_manager.jsp").forward(req,resp);}

配置web文件:

在这里插入图片描述

3、修改【图书管理】请求地址

在这里插入图片描述

注意:在BaseServlet程序中要添加上doGet方法,不然没办法直接访问BookServlet程序

public class BaseServlet extends HttpServlet {
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp); }

4、修改 pages/manager/book_manager.jsp 页面的数据遍历输出

记得要使用JSTL前要导包:

在这里插入图片描述

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>
添加图书功能的实现
名称 价格 作者 销量 库存 操作
${book.bookName} ${book.price} ${book.author} ${book.sales} ${book.stock} 修改 删除
添加图书

5.2、前后台的简单介绍

为什么配置文件url-pattern要加/manager

在这里插入图片描述

在这里插入图片描述

5.3、添加图书功能的实现

1、添加图书流程细节

在这里插入图片描述

2、问题说明:表单重复提交

当用户提交完请求,浏览器会记录下最后一次请求的全部信息。当用户按下功能键 F5,就会发起浏览器记录的最后一次 请求。

请求转发是一次请求,地址映射到http://localhost:8080/工程名/下的web,重定向是两次请求,且地址映射到http://localhost:8080/

3、BookServlet 程序中添加 add 方法

protected void addBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1、获取请求的参数==封装成为Book对象 Book book = WebUtils.copyParamToBean(req.getParameterMap(),new Book());// 2、调用BookService.addBook()保存图书 bookService.addBook(book);// 3、跳到图书列表页面// 当用户提交完请求,浏览器会记录下最后一次请求的全部信息。当用户按下功能键 F5,就会发起浏览器记录的最后一次 请求。// 请求转发是一次请求,地址映射到http://localhost:8080/工程名/下的web,重定向是两次请求,且地址映射到http://localhost:8080/// /manager/bookServlet?action=list // req.getRequestDispatcher("manager/bookServlet?action=list").forward(req,resp);// getContextPath():取得工程名路径 resp.sendRedirect(req.getContextPath() + "/manager/bookServlet?action=list"); }

4、修改 book_edit.jsp 页面

名称 价格 作者 销量 库存 操作

5.4、删除图书功能的实现

1、图解删除流程:

在这里插入图片描述

2、BookServlet 程序中的 delete方法:

protected void deleteBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1、获取请求的参数id,图书编程 int id = WebUtils.parseInt(req.getParameter("id"), 0);// 2、调用bookService.deleteBookById();删除图书 bookService.deleteBookById(id);// /book/manager/bookServlet?action=list resp.sendRedirect(req.getContextPath() + "/manager/bookServlet?action=list"); }

3、给 WebUtils 工具类添加转换 int 类型的工具方法

/** * 将字符串变为整型 * @param str 要转换的字符串 * @param defaultValue 转换不成功给其默认值 * @return 转换后的数据 */public static int parseInt(String str,int defaultValue){
try {
return Integer.parseInt(str); } catch (NumberFormatException e) {
e.printStackTrace(); } return defaultValue;}

4、修改删除的连接地址:

${book.stock} ### 5、给删除添加确认提示操作:

5.5、修改图书功能的实现

1:图解修改图书细节

在这里插入图片描述

2、更新【修改】的请求地址

${book.stock}修改

3、BookServlet 程序中添加 getBook 方法:

protected void getBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1 获取请求的参数图书编号 int id = WebUtils.parseInt(req.getParameter("id"), 0); //2 调用bookService.queryBookById查询图书 Book book = bookService.queryBookById(id); //3 保存到图书到Request域中 req.setAttribute("book",book); //4 请求转发到。pages/manager/book_edit.jsp页面 req.getRequestDispatcher("/pages/manager/book_edit.jsp").forward(req,resp);}

4、解决 book_edit.jsp 页面,即要实现添加,又要实现修改操作。

方法一:

book_manager.jsp页面:
在这里插入图片描述

book_edit.jsp页面:

在这里插入图片描述

方法二:

book_edit.jsp页面:

<%--
--%>

方法三:

book_edit.jsp页面:

5、在 BookServlet 程序中添加 update 方法:

protected void updateBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1、获取请求的参数id,图书编程 Book book = WebUtils.copyParamToBean(req.getParameterMap(), new Book()); // 2、调用bookService.deleteBookById();删除图书 bookService.updateBook(book); // /MyBookStore/manager/bookServlet?action=list resp.sendRedirect(req.getContextPath() + "/manager/bookServlet?action=list");}

转载地址:http://emuki.baihongyu.com/

你可能感兴趣的文章
VP6802高清视频处理模块
查看>>
VP6802S01高清视频输入模块
查看>>
VP6803高清视频处理模块
查看>>
CAN总线基础知识(一)
查看>>
CAN总线基础知识(二)
查看>>
DM8148的电源和地(二)
查看>>
基于陀螺进行运动检测的电子稳像方案
查看>>
数字视频基础(一)
查看>>
AM5728概述(1)
查看>>
AM5728概述(4)
查看>>
AM5728概述(6)
查看>>
RapidIO协议(1)
查看>>
RapidIO协议(2)
查看>>
DM8168 EMAC/MDIO模块(2)
查看>>
DM8168 EMAC/MDIO模块(3)
查看>>
DM8168 EMAC/MDIO模块(4)
查看>>
DM8168 EMAC/MDIO模块(5)
查看>>
DM8168 EMAC/MDIO模块(6)
查看>>
DM8168 EMAC/MDIO模块(7)
查看>>
DM8168 EMAC/MDIO模块(8)
查看>>