Web项目整合---实现增删查改
关于web项目中如何实现增删查改的操作
这里我们以一个书城项目为例讲解
首先了解javaEE的三层架构
由图中我们可以看出,javaEE的三层架构严格的规定了项目中的每个模块,每个层需要完成的事情,这样会使项目的变得非常简洁,按部就班的完成每一部分,我们的项目也就很容易的完成,当然这这里说的只是针对非常简单的项目,对于大型项目就另当别论了。
增删查改之—-增Create
思维导图
详解
从图中我们可以看出,当客户端用户输入完数据之后请求就会发送给服务器,当服务器端BooServlet接受到来自add.html页面的请求后就会做出相应的相应,通过反射调用Add(req,resp)方法
在Add方法中
1 | protected void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
这就是一个简单add方法的实现
增删查改之—-查Read
思维导图
- 在index上点击跳转到manager页面的请求,然后manager页面上显示响应【bookServlet?action=list】,然后服务器端就会收到响应
服务器端收到响应就会调用BookServlet的doPost方法,在doPost方法中显示的action收到的是list,然后后端就会调用list方法
在list方法中有三个步骤【
1
2
3
4
51. 通过BookService调用BookDao中的查询所有图书的方法(queryBooks),然后queryBooks再次调用BaseDao抽象类中的queryForList方法查找到所有图书。
2. 将查询到的所有图书保存到request域中
3. 通过请求转发,将保存的数据回传给前端book_manager.jsp页面
4. book_manager.jsp页面收到转发的请求,通过el表达式,将数据显示出来
5. 最后,数据就会完美的呈现在面前
】
代码实现:
1 | protected void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
增删查改之—-改Update
思维导图
- 首先点击修改,他将会调用doPost方法,将action值赋值为getBook
通过getBook()方法将id为XXX的数据获取出来然后显示在book_edit页面上。步骤有【
1> 获取请求的参数信息–图书编号
2> 调用BookService下的queryBookById()获取该图书的所有信息
3> 将数据保存在request作用域中
4> 请求转发到book_edit页面
】
- 通过上述步骤,在book_edit页面就会显示要修改的数据,接下来要做的就是将要修改的数据保存起来,然后再回传给客户端
- 将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> 重定向跳转回原来的页面
代码实现
1 | protected void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
增删查改之—-删Delete
思维导图
- 服务器获取客户端要删除的数据的id
将请求发送至服务器,然后后端调用doPost方法,action传的值为delete
doPost方法,在其中执行这几步骤【
1> 获取请求参数 id
2>通过BookService调用BookDao中的添加图书的方法(deleteBookById),然后adeleteBookById再次调用BaseDao抽象类中的update方法将数据库中的数据删除
3>重定向跳转回原来的页面
】
代码实现
1 | protected void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |