博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
异常检测(二)——MVTec AD -A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection
查看>>
异常检测(三):PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization
查看>>
Qt /INCLUDE:?warp_size@cuda@at@@YAHXZ
查看>>
Faster-RCNN网络详解
查看>>
Litorch+VS2017+Qt环境配置教程
查看>>
yolo训练精简版
查看>>
基于GB28181RTPoverTCP的发送程序拾遗
查看>>
Android入门知识要点
查看>>
libcurl异步请求+http长连接池
查看>>
2440机器码
查看>>
c语言内存分配
查看>>
结构体file_operations
查看>>
TFT LCD
查看>>
双向链表
查看>>
二级指针与指针数组的关系
查看>>
Linux系统限制
查看>>
C预处理器标识
查看>>
static用法总结
查看>>
const用法小结
查看>>
malloc、free与内存碎片
查看>>