快捷搜索: W

[jsp学习]纯JSP分页代码_java基础知识总结

这是从一个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"; //表名
  
  
  //运行图:
http://www.xiaobaijidi.net/data/attachment/forum/javaxxz/JAVA基础知识

//连接字符串
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

您可能还会对下面的文章感兴趣: