jsp分页

来源:互联网 发布:网络行为控制器 编辑:程序博客网 时间:2024/06/11 23:48
<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>
 
原创粉丝点击