用servlet实现分页功能

时间:2021-09-25 13:26:38

[java] view plaincopy
  1. /*=====================分页=============*/  
  2. int pageSize = 15;  //一页显示的记录数  
  3. int pageNow = 1;   //希望显示第几页  
  4. int rowCount = 0;   //共有几条记录(查表)  
  5. int pageCount = 0;  //共有几页(计算)  
  6.               
  7. //连接数据库  
  8. Class.forName("com.mysql.jdbc.Driver");  
  9. //得到连接  
  10. conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testuser=root&password=root");  
  11.               
  12. //通过参数pageNow实现页数的链接  
  13. String sPageNow = req.getParameter("pageNow");  
  14. if(sPageNow != null){  
  15.   //用户不是第一次进入wel  
  16.   pageNow = Integer.parseInt(sPageNow);  
  17. }  
  18.               
  19. //查表得到rowCount  
  20. ps = conn.prepareStatement("select count(*) from user");  
  21. rs = ps.executeQuery();  
  22. if(rs.next()){  
  23.    rowCount = rs.getInt(1);  
  24. }  
  25.               
  26. //计算pageCount  
  27. if(rowCount%pageSize == 0){  
  28.    pageCount = rowCount/pageSize;  
  29. }else {  
  30.    pageCount = rowCount/pageSize + 1;  
  31. }  
  32.               
  33. //从数据库中取出记录  
  34. //第pageNow页的内容为从数据库中第pageSize*(pageNow - 1)+1条记录开始取出pageSize条记录  
  35. ps = conn.prepareStatement("select * from user limit "+pageSize*(pageNow - 1+", "+pageSize+"");  
  36. rs = ps.executeQuery();  
  37.               
  38. //以表格形式在页面显示数据库中的记录  
  39. pw.println("<table border=1>");  
  40. //表头  
  41. pw.println("<tr><th>id</th><th>name</th><th>passwd</th><th>email</th><th>grade</th></tr>");  
  42.  //表的内容  
  43. while(rs.next()){  
  44.     pw.println("<tr>");  
  45.     pw.println("<td>"+rs.getInt(1)+"</td>");  
  46.     pw.println("<td>"+rs.getString(2)+"</td>");  
  47.     pw.println("<td>"+rs.getString(3)+"</td>");  
  48.     pw.println("<td>"+rs.getString(4)+"</td>");  
  49.     pw.println("<td>"+rs.getInt(5)+"</td>");  
  50.     pw.println("</tr>");  
  51. }  
  52.               
  53. pw.println("</table>");  
  54. //显示页数超链接  
  55. if(pageNow > 1){  
  56. //当前页不是第一页时显示”上一页“的超链接  
  57.      pw.println("<a href="wel?pageNow=" mce_href="wel?pageNow=""+(pageNow-1)+">上一页</a>");  
  58. }  
  59.               
  60. //从当前页开始显示10页的超链接  
  61. for(int i = pageNow; i <= pageNow+9; i++){  
  62.      pw.println("<a href="wel?pageNow=" mce_href="wel?pageNow=""+i+">"+i+"</a>");  
  63. }  
  64. if(pageNow < pageCount){  
  65. //当前页不是最后一页时显示”下一页“的超链接  
  66.      pw.println("<a href="wel?pageNow=" mce_href="wel?pageNow=""+(pageNow+1)+">下一页</a>");  
  67. }  

相关文章