CRUD
Posted Observer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CRUD相关的知识,希望对你有一定的参考价值。
CRUD是常见的页面功能,即我们常说的增删改查
C - Creation 增加
R - Retrieve 查询
U - Update 修改
D - DELETE 删除
执行的流程为:
客户端(JSP或html)输入数据,提交至对应的Servlet,Servlet执行Service层方法,再通过DAO层查询数据,数据层层返回至Servlet,Servlet将数据发送到客户端页面(JSP),页面读取数据并显示。
根据MVC的思想,Model(模型)、View(视图)、Controller(控制器),bean也就是实体类(一般是对应数据库的每个表)属于Model层,JSP页面属于View层,Servlet则属于Controller层。
这里不对具体代码进行展示,只对流程进行详解:
分页功能:
JSP的按钮代码:
<ul class="pager"> <li><a href="${pageContext.request.contextPath }/listProduct?start=0">首 页</a></li> <li><a href="${pageContext.request.contextPath }/listProduct?start=${pre}">上一页</a></li> <li><a href="${pageContext.request.contextPath }/listProduct?start=${next}">下一页</a></li> <li><a href="${pageContext.request.contextPath }/listProduct?start=${last}">末 页</a></li> </ul>
Servlet代码:
public class AdminProductListServlet extends HttpServlet { private AdminProductService adminProductService = new AdminProductService(); @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { int start = 0; int count = 10;//每页显示个数 start = Integer.parseInt(request.getParameter("start"));//接收请求发送的start值 int next = start+count;//下一页起始值为JSP发送的start值+每页显示个数 int pre = start-count;//下一页起始值为JSP发送的start值-每页显示个数 int total = adminProductService.getTotal();//获取数据总个数 int last;//最后一页 if(total%count==0)//如果数据总个数刚好能整除每页显示个数 last = total-count; //最后一页起始值为数据总数-每页显示个数,例如数据总共50个,每页显示10个,则最后一页起始值为40 else last = total - total%count; //如果无法整除,例如数据总数53个,则最后一页起始值为53-50%10 即53-3=50 pre = pre<0 ?0:pre;//边界检查,如果在第一页点击前一页,start-count pre为0-10=-10 无法显示,则pre应取0,即显示第一页 next = next>last ?last:next; //边界检查,如果在最后一页点击下一页,start+count 例如最后一页起始值为50 数据总数53 50+10=60 //此时下一页起始值为60,超过数据总数,无法显示,则next应取last的值即50,即显示最后一页 request.setAttribute("next", next); request.setAttribute("pre", pre); request.setAttribute("last", last); request.setAttribute("start", start);//用于JSP页面显示数据序号 List<Product> list = adminProductService.list(start, count); request.setAttribute("productlist", list); request.getRequestDispatcher("/admin/product/list.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); } } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
这里要注意的是,首页起始值一直是0,所以由其他页面向Servlet提交请求时,必须包含参数start=0,使得页面可以正常从第一页显示!
以上是关于CRUD的主要内容,如果未能解决你的问题,请参考以下文章
[Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作