您的位置:首页 > Web前端 > JavaScript

jsp分页技术

2014-01-14 13:10 316 查看
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<% 

//连接字符串

 Class.forName("com.mysql.jdbc.Driver");

Connection conn=DriverManager.getConnection("jdbc:mysql://202.117.16.97:3306/yuqing","root","root");

Statement statement = conn.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(topic_id) from topic_5,event_copy  where topic_5.topic_id=event_copy.topic_Type group by topic_id " ); 

rs.next(); 

RecordCount = rs.getInt("count(topic_id)"); 

rs = statement.executeQuery("select topic_name,title from topic_5,event_copy where topic_5.topic_id=event_copy.topic_Type and topic_5.topic_id!=-1 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="4px">分页显示记录</font></td>

    <td width="76%">

       <font size="4px"><%="总共"+RecordCount+"条记录 - 当前页:"+PageNo+"/"+MaxPage %></font>

    </td>

 </tr>

</table>

<br>

<table width="100%" border="0" class="NormalTableTwo">

  

<%

int i = 1;

while (rs.next()) {

  int bil = i + (PageNo-1)*PageSize;

  %>

  <tr><td><font color="black"><%=rs.getString("topic_name")%></font></td><td><font color="black"><%=rs.getString("title")%></font></td></tr>
          <% }%>

</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();

  

%>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: