分页
来源:互联网 发布:程序员出书 编辑:程序博客网 时间:2024/05/07 17:47
分页:
数据库语句 :
String sql="select count(*) from gifts"; //查询记录条数总数
String sql = " Select * from gifts limit ?,?"; //从 某项查询开始查询 ,共某条
MY:
Servlet
int pages = 0; // 待显示页面int count = 0; // 总条数int totalpages = 0; // 总页数int limit = 10; // 每页显示记录条数protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session = request.getSession(); String strPage = request.getParameter("pages"); //获取跳页时传进来的当前页面参数(需要跳转到的页数) int pageNo=limit(strPage); //判断页数是否越界(限制越界),把页数转换为数据库中的条数 List<Gifts> list=gs.limitGifts(pageNo, limit); //从pageNo条开始查询 ,查询limit条 session.setAttribute("giftslist", list); //返回分页查询到的数据 session.setAttribute("pages", pages); //返回将要显示的页面数 session.setAttribute("totalpages", totalpages);//返回总页数response.sendRedirect("jsp/gifts.jsp");}
//分页查询public int limit(String strPage ){count =gs.count(); //数据库中查询的总记录数 totalpages = (int)Math.ceil(count/(limit*1.0)); //由记录总数除以每页记录数得出总页数(ceil向正无穷取整 ,例:1.1=2 ) if (strPage == null) { //第一次进入页面时,显示第一页 pages = 1; } else { try{ pages = java.lang.Integer.parseInt(strPage); //从页面获取到的当前页面数,转为int型 }catch(Exception e){ pages = 1; } if (pages < 1){//当前页小于1(第一页时) pages = 1; } if (pages > totalpages){ //当前页数大于总页数 pages = totalpages; } } return (pages - 1) * limit; //把当前页数转为数据库对应的条数}
jsp 页面:
<td colspan="4" style="font-size: 20px">第${pages} 页 共${totalpages}页 <a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=1">首页</a><a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=${pages-1}"> 上一页</a> <a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=${pages+1}"> 下一页</a> <a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=${ totalpages}">最后一页</a> <form action="${pageContext.servletContext.contextPath}/LimitGifts.do"> 转到第:<input type="text" name="pages" size="8" >页 <input class="btn btn-default" type="submit" value="GO" name="cndok"> </form> </td>
TEACHER:
jsp:
<div> ${pageStr}</div>
servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String currentPage = request.getParameter("page"); //获取当前页号String sexs = request.getParameter("sex");String ages = request.getParameter("age");String username = request.getParameter("username");System.out.println("ages :"+ages);int currentNo = currentPage == null ? 1 : Integer.parseInt(currentPage);int sex = sexs == null? -1 : Integer.parseInt(sexs);int age = (ages == null || "".equals(ages)) ? 0 : Integer.parseInt(ages);Pager pager = new Pager(userServer.getTotalCount(sex,username,age),currentNo);pager.setUrl("user_list.servlet");pager.addParameter("sex", ""+sex);pager.addParameter("username", ""+username);pager.addParameter("age", ""+age);// 根据页号获取列表数据request.setAttribute("userLists", userServer.getUserLists(sex,username,age,pager.getIStart(), pager.getIStep()));request.setAttribute("currentPage", currentNo);request.setAttribute("pageCount", pager.getPageCount());request.setAttribute("pageStr", pager.getPageStr());request.getRequestDispatcher("user_list.jsp").forward(request, response);}封装方法:
public class Pager {private int iStep =5; //每页记录数private int iStart;private int iEnd;private int iCount; //总记录数private int curPage; private int pageCount;//页数private int pageStep = 3;private String url;private String searchStr;private String parameter = "";public Pager(){}public Pager(int totalCount,int currentPage){setICount(totalCount);setCurPage(currentPage);}/** * @return Returns the iEnd. */public int getIEnd() {return iEnd;}/** * @return Returns the iStart. */public int getIStart() {return iStart;}/** * @param searchStr * The searchStr to set. */public void setSearchStr(String searchStr) {this.searchStr = searchStr;}/** * @param curPage * The curPage to set. */public void setCurPage(int curPage) {if (curPage <= 0)return;this.curPage = curPage;if (this.iCount > 0) {this.iStart = this.iStep * (curPage - 1);if (curPage == this.pageCount)this.iEnd = this.iCount - 1;elsethis.iEnd = this.iStart + this.iStep;}}/** * @param count * The iCount to set. */public void setICount(int count) {this.iCount = count;if (count > 0) {this.pageCount = count / this.iStep;this.pageCount += (count % this.iStep) == 0 ? 0 : 1;}}/** * @return Returns the pageCount. */public int getPageCount() {return pageCount;}/** * @param pageCount * The pageCount to set. */public void setPageCount(int pageCount) {this.pageCount = pageCount;}/** * @return Returns the iStep. */public int getIStep() {return iStep;}/** * @param pageStep * The iStep to set. */public void setIStep(int iStep) {this.iStep = iStep;}/** * @param url * The url to set. */public void setUrl(String url) {this.url = url;}public String getPageStr() {StringBuffer sb = new StringBuffer("总共:");sb.append(this.iCount);sb.append("条记录 ");if (this.curPage > 1) {sb.append("<a href='");sb.append(url);sb.append("?page=1");sb.append(this.parameter);sb.append("'>");sb.append("首页");sb.append("</a>");sb.append(" ");sb.append("<a href='");sb.append(url);sb.append("?page=");sb.append(this.curPage - 1);sb.append(this.parameter);sb.append("'>");sb.append("上一页");sb.append("</a>");sb.append(" ");}int pageStart = (this.curPage - 1) / this.pageStep;for (int i = 1; i <= this.pageStep; i++) {if ((this.pageStep * pageStart + i) > this.pageCount)break;if (i == this.curPage % this.pageStep)sb.append("[" + this.curPage + "]");else {sb.append("<a href='");sb.append(url);sb.append("?page=");sb.append(this.pageStep * pageStart + i);sb.append(this.parameter);sb.append("'>");sb.append(this.pageStep * pageStart + i);sb.append("</a>");}sb.append(" ");}if (this.curPage < this.pageCount) {sb.append("<a href='");sb.append(url);sb.append("?page=");sb.append(this.curPage + 1);sb.append(this.parameter);sb.append("'>");sb.append("下一页");sb.append("</a>");sb.append(" ");sb.append("<a href='");sb.append(url);sb.append("?page=");sb.append(this.pageCount);sb.append(this.parameter);sb.append("'>");sb.append("尾页");sb.append("</a>");}if (this.searchStr != null && this.searchStr.length() > 0) {sb.append("<input type='hidden' ");sb.append("name='search' ");sb.append("value='");sb.append(this.searchStr);sb.append("'");}return sb.toString();}public void addParameter(String paramName, String paramProperty) {StringBuffer sb = new StringBuffer(this.parameter);sb.append("&");sb.append(paramName);sb.append("=");sb.append(paramProperty);this.parameter = sb.toString();}public static void main(String[] args) {Pager page = new Pager(22,1);page.setUrl("user_list.servlet");System.out.println(page.getPageStr());}}<td colspan="4" style="font-size: 20px">第${pages} 页 共${totalpages}页 <a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=1">首页</a><a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=${pages-1}"> 上一页</a> <a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=${pages+1}"> 下一页</a> <a href="${pageContext.servletContext.contextPath}/LimitGifts.do?pages=${ totalpages}">最后一页</a> <form action="${pageContext.servletContext.contextPath}/LimitGifts.do"> 转到第:<input type="text" name="pages" size="8" >页 <input class="btn btn-default" type="submit" value="GO" name="cndok"> </form> </td>
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
瑞士手表
手表网
网上买手表
爱表族论坛
男士机械手表
机械手表
女士手表
奢侈品手表
noob手表工厂
欧米茄手表大全
仿造处女膜
科学家仿造动物发明了什么
仿造的近义词
珊瑚玉可以人工仿造吗
易企
企
企网
房企
四家车企申请破产
车企申请破产
企查查企业信息查询
四家中国车企申请破产
企查查在线查
易企秀
企查查在线
矿企否认山体喷漆
比企谷八幡
企查查网页版
云浩软件企汇通登录
企查查网站
企叮咚
房企宣扬龙脉大盘
企信宝
企查查企业在线查询
顺企网
企查查企业查询
云浩企汇通
企查查企业
易企秀怎么制作
企查查app
易企秀手机版下载