Web项目整合---实现增删查改

简介: Web项目整合---实现增删查改

关于web项目中如何实现增删查改的操作



这里我们以一个书城项目为例讲解


首先了解javaEE的三层架构


由图中我们可以看出,javaEE的三层架构严格的规定了项目中的每个模块,每个层需要完成的事情,这样会使项目的变得非常简洁,按部就班的完成每一部分,我们的项目也就很容易的完成,当然这这里说的只是针对非常简单的项目,对于大型项目就另当别论了。


增删查改之—-增Create


思维导图


详解

从图中我们可以看出,当客户端用户输入完数据之后请求就会发送给服务器,当服务器端BooServlet接受到来自add.html页面的请求后就会做出相应的相应,通过反射调用Add(req,resp)方法


在Add方法中


protected void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //1. 获取请求参数,封装成Book对象
    String name = req.getParameter("name");
    String author = req.getParameter("author");
    BigDecimal price = BigDecimal.valueOf(Double.parseDouble(req.getParameter("price")));
    Integer sales = Integer.valueOf(req.getParameter("sales"));
    Integer stock = Integer.valueOf(req.getParameter("stock"));
    Book book = new Book(null, name, author, price, sales, stock, null);
    //2. 调用bookService.addBook(book)将数据保存入数据库
    bookService.addBook(book);
    //3. 跳转回图书列表页面----又出现表单重复提交的bug
    resp.sendRedirect(req.getContextPath() + "/bookServlet?action=page&pageNo="+req.getParameter("pageNo"));
复制代码

这就是一个简单add方法的实现


增删查改之—-查Read


思维导图


1.在index上点击跳转到manager页面的请求,然后manager页面上显示响应【bookServlet?action=list】,然后服务器端就会收到响应


1.服务器端收到响应就会调用BookServlet的doPost方法,在doPost方法中显示的action收到的是list,然后后端就会调用list方法


2.在list方法中有三个步骤【


1.  通过BookService调用BookDao中的查询所有图书的方法(queryBooks),然后queryBooks再次调用BaseDao抽象类中的queryForList方法查找到所有图书。
2. 将查询到的所有图书保存到request域中
3.  通过请求转发,将保存的数据回传给前端book_manager.jsp页面
4.  book_manager.jsp页面收到转发的请求,通过el表达式,将数据显示出来
5.  最后,数据就会完美的呈现在面前


代码实现:


protected void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //1. 通过BookService查询所有的图书
    List<Book> books = bookService.queryBooks();
    //2. 保存所有的图书到request域中
    req.setAttribute("books",books);
    //3. 请求转发到book_manager.jsp
    req.getRequestDispatcher("book_manager.jsp").forward(req,resp);
}


增删查改之—-改Update


思维导图


首先点击修改,他将会调用doPost方法,将action值赋值为getBook


通过getBook()方法将id为XXX的数据获取出来然后显示在book_edit页面上。步骤有【


1> 获取请求的参数信息–图书编号


2> 调用BookService下的queryBookById()获取该图书的所有信息


3> 将数据保存在request作用域中


4> 请求转发到book_edit页面


  1. 通过上述步骤,在book_edit页面就会显示要修改的数据,接下来要做的就是将要修改的数据保存起来,然后再回传给客户端
  2. 将book_edit页面的隐藏域的value值修改为动态获取的值因为book_edit页面会是实现两个操作,修改与保存,所以回传的action值就因该动态的获取是add/update(判断的方法是id是否为空;添加的id为空)


这里我们回传的action值为update,所以再次回到BookServlet程序,这里我们调用的是doGet方法,然后通doGet在调用doPost 。通过doPost,因为action的值为update,所以这里我们调用update方法*


在update方法中要实现以下的及步骤【


1> 获取请求参数,封装成Book对象不能忘记id,修改的时候id值是存在的,我们得获取但是不能修改


2>通过BookService调用BookDao中的修改图书的方法(updateBook),然后updateBook再次调用BaseDao抽象类中的update方法将数据库中的数据修改保存


3> 重定向跳转回原来的页面


代码实现


protected void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //获取请求参数,封装成Book对象
    Integer id= Integer.valueOf(req.getParameter("id"));
    String name = req.getParameter("name");
    String author = req.getParameter("author");
    BigDecimal price = BigDecimal.valueOf(Double.parseDouble(req.getParameter("price")));
    Integer sales = Integer.valueOf(req.getParameter("sales"));
    Integer stock = Integer.valueOf(req.getParameter("stock"));
    Book book = new Book(id, name, author, price, sales, stock, null);
    bookService.updateBook(book);
    //请求重定向
    resp.sendRedirect(req.getContextPath() + "/bookServlet?action=page&pageNo="+req.getParameter("pageNo"));
}


增删查改之—-删Delete


思维导图


1.服务器获取客户端要删除的数据的id


1.将请求发送至服务器,然后后端调用doPost方法,action传的值为delete

2.doPost方法,在其中执行这几步骤【

1> 获取请求参数 id


2>通过BookService调用BookDao中的添加图书的方法(deleteBookById),然后adeleteBookById再次调用BaseDao抽象类中的update方法将数据库中的数据删除


3>重定向跳转回原来的页面


代码实现


protected void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1. 获取请求参数 id
    Integer id = Integer.valueOf(req.getParameter("id"));
    //2. 调用BookService.deleteBookById()删除数据
    bookService.deleteBookById(id);
    //3. 重定向跳转回原来的页面
    resp.sendRedirect(req.getContextPath() + "/bookServlet?action=page&pageNo="+req.getParameter("pageNo"));
}
目录
相关文章
|
2月前
|
Java Maven
Maven如何创建Maven web项目
Maven如何创建Maven web项目
|
5天前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
5天前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
10 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
19天前
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
20天前
|
开发框架 NoSQL 前端开发
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
|
5天前
|
开发框架 .NET API
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
|
5天前
|
开发框架 .NET API
.Net Core Console 项目如何使用 HttpClient 与 Web 服务通信
.Net Core Console 项目如何使用 HttpClient 与 Web 服务通信
|
5天前
|
应用服务中间件
2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
这篇文章提供了在IntelliJ IDEA中配置Tomcat服务器的详细步骤,包括添加Tomcat Server、选择安装路径、添加项目Artifact,以及创建和展示Web项目的流程。
|
6天前
|
缓存 Java 应用服务中间件
2021年9月28日,老是遇到一些非常奇葩的问题。就离谱、好好的一个web项目就莫名奇妙坏了。
开发者在使用IDEA 2020编辑器搭建的SSM框架图书管理系统中,遇到删除功能异常问题,经过一系列尝试后发现是IDEA编译缓存导致的,最终通过重新编译项目解决了问题。
|
1月前
|
安全 前端开发 API
震惊!掌握Django/Flask后,我竟然轻松征服了所有Web项目难题!
【7月更文挑战第15天】Python Web开发中,Django以其全面功能见长,如ORM、模板引擎,助你驾驭复杂需求;Flask则以轻量灵活取胜,适合快速迭代。两者结合使用,无论是数据库操作、用户认证还是API开发,都能让你应对Web挑战游刃有余。掌握这两者,Web项目难题变得易如反掌!
57 10