Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 346|回复: 0

[jsp学习]纯JSP分页代码

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-1 20:28:41 | 显示全部楼层 |阅读模式
    这是从一个PHP分页代码改的,没有异常处理,也没有利用java面向对象的特点,仅能帮助了解分页的逻辑和页码处理,供参考。源码中带有mysql中的数据库,方便调试,请下载。
    下面是TestPage.jsp

    <%@ page contentType="text/HTML; charset=gb2312" %>
    <%@ page language="java" %>
    <%@ page import="java.sql.*" %>
    <%
    //驱动程序名,比较旧了,如果你用mysql5,自己改。
    String driverName="org.gjt.mm.mysql.Driver";
    String userName="root";//数据库用户名
    String userPasswd="";//密码

      String dbName="bookstore";//数据库名   String tableName="items"; //表名
      
      
      //运行图:


    //连接字符串
    String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
    Class.forName(driverName).newInstance();
    Connection connection=DriverManager.getConnection(url);
    Statement statement = connection.createStatement(); //每页显示记录数
    int PageSize = 8;
    int StartRow = 0; //开始显示记录的编号
    int PageNo=0;//需要显示的页数
    int CounterStart=0;//每页页码的初始值
    int CounterEnd=0;//显示页码的最大值
    int RecordCount=0;//总记录数;
    int MaxPage=0;//总页数
    int PrevStart=0;//前一页
    int NextPage=0;//下一页
    int LastRec=0;
    int LastStartRecord=0;//最后一页开始显示记录的编号  //获取需要显示的页数,由用户提交
    if(request.getParameter("PageNo")==null){ //如果为空,则表示第1页
       if(StartRow == 0){
          PageNo = StartRow + 1; //设定为1
       }
    }else{
       PageNo = Integer.parseInt(request.getParameter("PageNo")); //获得用户提交的页数
       StartRow = (PageNo - 1) * PageSize; //获得开始显示的记录编号
    } //因为显示页码的数量是动态变化的,假如总共有一百页,则不可能同时显示100个链接。而是根据当前的页数显示
    //一定数量的页面链接

    //设置显示页码的初始值!!
       if(PageNo % PageSize == 0){
        CounterStart = PageNo - (PageSize - 1);
       }else{
        CounterStart = PageNo - (PageNo % PageSize) + 1;
       } CounterEnd = CounterStart + (PageSize - 1);
    %> <html>
    <head>
    <title>分页显示记录</title>
    <link rel="stylesheet" href="style.css" type="text/css">
    </head>
    <% //获取总记录数
    ResultSet rs = statement.executeQuery("select count(*) from items" );
    rs.next();
    RecordCount = rs.getInt(1);  rs = statement.executeQuery("SELECT image_url,author,price,item_id FROM items ORDER BY item_id DESC LIMIT "
            +StartRow+", "+PageSize);  //获取总页数
    MaxPage = RecordCount % PageSize;
    if(RecordCount % PageSize == 0){
       MaxPage = RecordCount / PageSize;
    }else{
        MaxPage = RecordCount/PageSize+1;
    }
    %>
    <body class="UsePageBg">
    <table width="100%" border="0" class="InternalHeader">
      <tr>
        <td width="24%"><font size=4>分页显示记录</font></td>
         <td width="76%">
            <font size=4><%="总共"+RecordCount+"条记录 - 当前页:"+PageNo+"/"+MaxPage %></font>
         </td>
      </tr>
    </table> <br>
    <table width="100%" border="0" class="NormalTableTwo">
       <tr>
         <td class="InternalHeader">记录序号</td>
         <td class="InternalHeader" >图像路径</td>
         <td class="InternalHeader" >作者</td>
         <td class="InternalHeader" >价格</td>
         <td class="InternalHeader" >图书编号</td>
       </tr>

    <%
    int i = 1;
    while (rs.next()) {
       int bil = i + (PageNo-1)*PageSize;
    %>
      <tr>
         <td class="NormalFieldTwo" ><%=bil %></td>
         <td class="NormalFieldTwo" ><%=rs.getString(1)%></td>
         <td class="NormalFieldTwo" ><%=rs.getString(2)%></td>
         <td class="NormalFieldTwo" ><%=rs.getString(3)%></td>
         <td class="NormalFieldTwo" ><%=rs.getString(4)%></td>
       </tr>
    <%
       i++;
    }%>
    </table>
    ><br>
    <table width="100%" border="0" class="InternalHeader">
       <tr>
        <td><div align="center">
    <%
        out.print("<font size=4>");
       //显示第一页或者前一页的链接
       //如果当前页不是第1页,则显示第一页和前一页的链接
       if(PageNo != 1){
         PrevStart = PageNo - 1;
         out.print("<a href=TestPage.jsp?PageNo=1>第一页 </a>: ");
         out.print("<a href=TestPage.jsp?PageNo="+PrevStart+">前一页</a>");
       }
       out.print("[");

        //打印需要显示的页码
        for(int c=CounterStart;c<=CounterEnd;c++){
        if(c <MaxPage){
          if(c == PageNo){
            if(c %PageSize == 0){
              out.print(c);
            }else{
               out.print(c+" ,");
            }
          }else if(c % PageSize == 0){
             out.print("<a href=TestPage.jsp?PageNo="+c+">"+c+"</a>");
          }else{
             out.print("<a href=TestPage.jsp?PageNo="+c+">"+c+"</a> ,");
          }
        }else{
          if(PageNo == MaxPage){
           out.print(c);
           break;
          }else{
             out.print("<a href=TestPage.jsp?PageNo="+c+">"+c+"</a>");
          break;
        }
       }
    }  out.print("]");;  if(PageNo < MaxPage){ //如果当前页不是最后一页,则显示下一页链接
         NextPage = PageNo + 1;
         out.print("<a href=TestPage.jsp?PageNo="+NextPage+">下一页</a>");
    }

    //同时如果当前页不是最后一页,要显示最后一页的链接
    if(PageNo < MaxPage){
        LastRec = RecordCount % PageSize;
        if(LastRec == 0){
           LastStartRecord = RecordCount - PageSize;
        }
        else{
           LastStartRecord = RecordCount - LastRec;
        }     out.print(":");
         out.print("<a href=TestPage.jsp?PageNo="+MaxPage+">最后一页</a>");
       }
       out.print("</font>");
    %>
    </div>
    </td>
    </tr>
    </table>
    <%
       rs.close();
       statement.close();
        connection.close();
    %>
    </body>
    </html>
       
         
         
          
          

            
          

            
          
         
       
      


    源码下载:http://file.javaxxz.com/2014/10/1/202840547.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-22 11:11 , Processed in 0.379934 second(s), 50 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表