网站上线多久才能百度,360网站 备案,爱站网关键词密度,坪山网站建设信息目录 前言
效果展示图如下
思路
服务器从前端界面获得什么#xff1f;
前端界面从后端服务器应该拿到什么#xff1f;
使用的技术
代码
前端代码
list.jsp中该功能的实现代码
后端代码
对应的servlet 代码
实体类代码
service的实现层 实现该功能的代码
dao层 实…目录 前言
效果展示图如下
思路
服务器从前端界面获得什么
前端界面从后端服务器应该拿到什么
使用的技术
代码
前端代码
list.jsp中该功能的实现代码
后端代码
对应的servlet 代码
实体类代码
service的实现层 实现该功能的代码
dao层 实现层 实现 从数据库分页查询代码 前言
本篇博客的核心
理解如何实现具有分页的思路理解对后端传递给前端的数据使用封装思想封装成一个对象
效果展示图如下 思路 服务器从前端界面获得什么 我们知道当我们点击哪一页就会给我们展示哪一页的数据 因此 我们需要获得 当前页码 当前页码 前端界面从后端服务器应该拿到什么 从图中可以看到总记录数总页码当前页码页容量展示给前端的数据 总记录数 需要从数据库中查一共多少条数据 总页码 总页码总记录数%页容量0 总记录数/页容量 总记录数/页容量1 当前页码和页容量 当前页码从前端直接获得页容量自定义【本项目中我在后端 代码固定 页容量为 2】在这里我使用 封装思想 把这些整合成一个 Page类型的对象 展示给前端的数据 需要在数据库中使用分页查询 在分页查询中获得第一个参数 值公式当前页码-1*页容量 发现在数据库中使用分页查询表示首页的第一个参数是 0。表示第一条数据是从0开始的之后都是跳过多少条数据获得的。 如假设 页容量是5并且从 0 开始计数 第二页首行数据序号是5 表示跳过前5个数据到达该页 第三页首行数据序号是10表示跳过前10个数据到达该页 依此类推 使用的技术 c标签和el表达式 如果不清楚的可以看我的 C标签和 EL表达式的在前端界面的应用-CSDN博客 代码
前端代码
list.jsp中该功能的实现代码 //list.jsp 对应的servlet是 ListByPageServlettable border1 classtable table-bordered table-hovertr classsuccessthinput typecheckbox /thth编号/thth姓名/thth性别/thth年龄/thth籍贯/ththQQ/thth邮箱/thth操作/th/trc:forEach items${page.records} varuser varStatusstrtdinput typecheckbox nameid value${user.id}/tdtd${s.index}/tdtd${user.name}/tdtd${user.gender}/tdtd${user.age}/tdtd${user.address}/tdtd${user.qq}/tdtd${user.email}/tdtda classbtn btn-default btn-sm href/users/checkUpdate?pageIndex${page.pageIndex}id${user.id}修改/anbsp;a classbtn btn-default btn-sm href/users/delete?pageIndex${page.pageIndex}id${user.id}删除/a/td/tr/c:forEach/tabledivnav aria-labelPage navigationul classpaginationc:if test${page.pageIndex1}lia href/users/listByPage?pageIndex${page.pageIndex-1} aria-labelPreviousspan aria-hiddentruelaquo;/span/a/li/c:ifc:forEach vari begin1 end${page.totalPage} step1c:choosec:when test${ipage.pageIndex}li classactivespan${i}/span/li/c:whenc:otherwiseli a href/users/listByPage?pageIndex${i}${i}/a/li/c:otherwise/c:choose/c:forEachc:if test${page.pageIndexpage.totalPage}lia href/users/listByPage?pageIndex${page.pageIndex1} aria-labelNextspan aria-hiddentrueraquo;/span/a/li/c:ifspan stylefont-size: 25px;margin-left: 5px;共${page.count}条记录共${page.totalPage}页/span/ul/nav/div后端代码
对应的servlet 代码
package fs.web;
import fs.entity.Page;
import fs.entity.Userinfo;
import fs.service.UserinfoService;
import fs.service.impl.UserinfoServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
WebServlet(/users/listByPage)
public class ListByPageServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//从数据库中查询用户 信息//设置请求编码req.setCharacterEncoding(UTF-8);//获取请求参数int pageIndex Integer.parseInt(req.getParameter(pageIndex));int pageSize 2;UserinfoService userinfoService new UserinfoServiceImpl();PageUserinfo page userinfoService.qurryByPage(pageIndex,pageSize);//设置浏览器响应编码resp.setContentType(text/html;charsetUTF-8);
// // 将数据保存到request请求域中req.setAttribute(page,page);req.getRequestDispatcher(/users/list.jsp).forward(req,resp);}}实体类代码
package fs.entity;import java.util.List;public class PageT {//记录内容总记录数总页码当前页码页容量private Long count;private Long totalPage;private Integer pageIndex;private Integer pageSize;private ListT records;public Long getCount() {return count;}public void setCount(Long count) {this.count count;}public Long getTotalPage() {return count%pageSize0?count/pageSize:(count/pageSize1);}public Integer getPageIndex() {return pageIndex;}public void setPageIndex(Integer pageIndex) {this.pageIndex pageIndex;}public Integer getPageSize() {return pageSize;}public void setPageSize(Integer pageSize) {this.pageSize pageSize;}public ListT getRecords() {return records;}public void setRecords(ListT records) {this.records records;}
}service的实现层 实现该功能的代码 Overridepublic PageUserinfo qurryByPage(int pageIndex, int pageSize) {UserinfoDao userinfoDao new UserinfoDaoImpl();//查询总记录数Long count userinfoDao.qurryCount();//查询当前页数据ListUserinfo records userinfoDao.qurryByPage(pageIndex, pageSize);PageUserinfo page new Page();page.setCount(count);page.setPageIndex(pageIndex);page.setPageSize(pageSize);page.setRecords(records);return page;}
dao层 实现层 实现 从数据库分页查询代码 Overridepublic ListUserinfo qurryByPage(int pageIndex, int pageSize) {QueryRunner qrnew QueryRunner();Connection connnull;String sqlselect * from tb_userinfo limit ?,?;try {conngetConnection();return qr.query(conn,sql,new BeanListHandlerUserinfo(Userinfo.class),(pageIndex-1)*pageSize,pageSize);} catch (Exception e) {throw new RuntimeException(e);}finally {close(conn);}}