jsp分页

< html xmlns = " http://www.w3.org/1999/xhtml " >
< head >
< meta http - equiv = " Content-Type "  content = " text/html; charset=gb2312 "   />
< title > 无标题文档 </ title >
<%
// 连接字符串
Class.forName( " org.gjt.mm.mysql.Driver " );
Connection connection
= DriverManager.getConnection( " jdbc:mysql://localhost:3306/sms " , " sms " , " sms " );
Statement statement 
=  connection.createStatement();
LinuxMySql lm 
=   new  LinuxMySql();
    
// 每页显示记录数
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 sm_asend "  ); 
rs.next(); 
RecordCount 
=  rs.getInt( 1 ); 

rs 
=  statement.executeQuery( " SELECT sm_da,sm_st,sm_ud FROM sm_asend ORDER BY sm_no 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 >

  
</ tr >

<%
int  i  =   1 ;
while  (rs.next()) {
%>
 
< tr >  
    
< td  class = " NormalFieldTwo "   ><%= lm.split86(rs.getString( 1 )) %></ td >
    
< td  class = " NormalFieldTwo "   ><%= lm.dateLog(rs.getString( 2 )) %></ td >
    
< td  class = " NormalFieldTwo "   ><%= lm.unicode2String(rs.getString( 3 )) %></ 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=fenye.jsp?PageNo=1>第一页 </a>:  " );
    out.print(
" <a href=fenye.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=fenye.jsp?PageNo= " + c + " > " + c + " </a> " );
     }
else {
        out.print(
" <a href=fenye.jsp?PageNo= " + c + " > " + c + " </a> , " );
     }
   }
else {
     
if (PageNo  ==  MaxPage){
      out.print(c);
      
break ;
     }
else {
        out.print(
" <a href=fenye.jsp?PageNo= " + c + " > " + c + " </a> " );
     
break ;
   }
  }
}

out.print(
" ] " );;

if (PageNo  <  MaxPage){  // 如果当前页不是最后一页,则显示下一页链接
    NextPage  =  PageNo  +   1 ;
    out.print(
" <a href=fenye.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=fenye.jsp?PageNo= " + MaxPage + " >最后一页</a> " );
  }
  out.print(
" </font> " );
%>
</ div >
</ td >
</ tr >
</ table >
<%
  rs.close();
  statement.close();
  connection.close();
%>
</ body >
</ html >
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值