jsp+servlet+javabean实现分页



分页是被讨论的快烂了的问题,现在的分页组件页到处都是!像有名的disply EC等等. 最近有舍友问起来,我说用组件啊,不过毕业设计用那个好像不太合适!就自己写个!不过觉得不能叫组件,就是只能简单实现罢了,有时间再修改.
1.分页bean
  1. package useBean;
  2. import java.sql.ResultSet;
  3. import java.util.List;
  4. import bean.EvaluationBean;
  5. public class PageDiv {
  6.     /**
  7.      * @param args
  8.      */
  9.     private int pageSize;
  10.     private int pageNum;
  11.     private int startRow;
  12.     private int endRow;
  13.     private int restPage;
  14.     private int currentPage;
  15.     //获得当前页数用来实现翻页
  16.     public int getCurrentPage() {
  17.         return currentPage;
  18.     }
  19.     public void setCurrentPage(int currentPage) {
  20.         this.currentPage = currentPage;
  21.     }
  22.     //获得最后一行
  23.     public int getEndRow(List list) {
  24.         if(this.getCurrentPage()==this.pageNum){
  25.             this.endRow=this.getStartRow()+this.getRestPage(list)-1;
  26.         }
  27.         else{
  28.             this.endRow=this.getStartRow()+this.getPageSize()-1;
  29.         }
  30.         return endRow;
  31.     }
  32.     public void setEndRow(int endRow) {
  33.         this.endRow = endRow;
  34.     }
  35.     //获得总页数
  36.     public int getPageNum(List list) {
  37.         if(list.size()%this.getPageSize()==0){
  38.             this.pageNum=list.size()/this.getPageSize();
  39.         }
  40.         else{
  41.             this.pageNum=list.size()/this.getPageSize()+1;
  42.         }
  43.         return pageNum ;
  44.     }
  45.     public void setPageNum(int pageNum) {
  46.         this.pageNum = pageNum;
  47.     }
  48.     //设置每页显示的记录数
  49.     public int getPageSize() {
  50.         return pageSize;
  51.     }
  52.     public void setPageSize(int pageSize) {
  53.         this.pageSize = pageSize;
  54.     }
  55.     //获得起始行
  56.     public int getStartRow() {
  57.         startRow = (this.currentPage-1)*(this.pageNum)+1;
  58.         return startRow;
  59.     }
  60.     public void setStartRow(int startRow) {
  61.         this.startRow = startRow;
  62.     }
  63.     //获得剩余页数
  64.     public int getRestPage(List list) {
  65.         if(list.size()%this.getPageSize()==0){
  66.             this.restPage=0;
  67.         }
  68.         else{
  69.             this.restPage=list.size()%this.getPageSize();
  70.         }
  71.         return restPage;
  72.     }
  73.     public void setRestPage(int restPage) {
  74.         this.restPage = restPage;
  75.     }
  76.     public static void main(String[] args) {
  77.     // TODO Auto-generated method stub
  78.     Link_db ld=new Link_db();
  79.    EvaluationBean e=new EvaluationBean();
  80.    List list=e.findEvByName(“李建成”);
  81.    System.out.println(“共”+list.size()+”条记录”);
  82.    PageDiv pd=new PageDiv();
  83.    pd.setPageSize(5);
  84.    pd.setCurrentPage(2);
  85.    System.out.println(“当前是”+pd.getCurrentPage()+”页”);
  86.    System.out.println(“共”+pd.getPageNum(list)+”页记录”);
  87.    System.out.println(“最后一页有”+pd.getRestPage(list)+”条记录”);
  88.    System.out.println(“本页的第一行是”+pd.getStartRow()+”条记录”);
  89.    System.out.print(“最后一行记录是第”+pd.getEndRow(list)+”条记录”);
  90.     }
  91. }

2.调用的serlet

  1. public void doGet(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.         response.setContentType(“text/html”);
  4.         PrintWriter out = response.getWriter();
  5.         String tname=”";
  6.         List listVo=null;
  7.         if(request.getParameter(“userName”)!=null){
  8.             tname=request.getParameter(“userName”);
  9.              EvaluationBean eb=new EvaluationBean();
  10.              listVo =eb.findEvByName(tname);
  11.         }
  12.         if(listVo.size()>0){
  13.             HttpSession session=request.getSession();
  14.             session.setAttribute(“tname”, tname);
  15.             session.setAttribute(“list”, listVo);
  16. //       RequestDispatcher   rd   =   request.getRequestDispatcher(“/WEB-INF/teacher.jsp”);
  17. //         rd.forward(request, response);
  18.         response.sendRedirect(“../teacher.jsp”);
  19.         }
  20.         else{
  21.              RequestDispatcher   rd   =   request.getRequestDispatcher(“/WEB-INF/error.jsp”);
  22.              rd.forward(request, response);
  23.         }
  24.     }

3.调用的jsp文件

  1. <body>
  2. <form action=”" name=”form1″>
  3. <center>
  4. <%
  5. List listVo=(List)session.getAttribute(“list”);
  6. String tname=(String)session.getAttribute(“tname”);
  7. int  averageScore=0;
  8.         PageDiv pd=new PageDiv();
  9.         pd.setPageSize(5);
  10.         int currentPage=1;
  11.         int pageNum=pd.getPageNum(listVo);
  12.         if(request.getParameter(“currentPage”)!=null){
  13.         currentPage=new Integer(request.getParameter(“currentPage”)).intValue();
  14.         }
  15.         pd.setCurrentPage(currentPage);
  16.             %>
  17. <h2>
  18.   <%=tname %>”老师你好!
  19. h2>
  20. <font style=’font-size: 8pt’>
  21. 当前是第<%=pd.getCurrentPage()%>页)
  22. <br>
  23. 共<%=pd.getPageNum(listVo) %>页记录)
  24. <br>
  25. (共”<%=listVo.size() %>”项记录)
  26. font>
  27. <table width=’680′ border=’1′ cellspacing=’0′ cellpadding=’0′ bordercolor=’#B8D9F2′>
  28. <tr>
  29. <td><font style=’font-size: 8pt’>
  30. 编号
  31. td>
  32.    <td><font style=’font-size: 8pt’>
  33. 分数
  34. td>
  35.     <td><font style=’font-size: 8pt’>
  36. 课程名称
  37. td>
  38. <td><font style=’font-size: 8pt’>
  39. 教师名称
  40.   td>
  41. <td><font style=’font-size: 8pt’>
  42. 综合评语
  43.    td>
  44. tr>
  45.             <%
  46.             for(int i=pd.getStartRow();i<pd.getEndRow(listVo)+1;i++){
  47.                 TeacherVo vo=(TeacherVo)listVo.get(i-1);
  48.                 out.print(“<tr>”);
  49.                 out.print(“<td><font style=’font-size: 8pt’>”);
  50.                 out.print(i);
  51.                 out.print(“td>”);
  52.                 out.print(“<td><font style=’font-size: 8pt’>”);
  53.                 out.print(vo.getAllScore());
  54.                 out.print(“td>”);
  55.                 out.print(“<td><font style=’font-size: 8pt’>”);
  56.                 out.print(vo.getCname());
  57.                 out.print(“td>”);
  58.                 out.print(“<td><font style=’font-size: 8pt’>”);
  59.                 out.print(vo.getTname());
  60.                 out.print(“td>”);
  61.                 out.print(“<td><font style=’font-size: 8pt’>”);
  62.                 out.print(vo.getCompre_reviews());
  63.                 out.print(“td>”);
  64.                 out.print(“tr>”);
  65.             }
  66.              %>
  67.              <tr>
  68. <td colspan=’5′ align=’right’>
  69. <font style=’font-size: 8pt’><a href=’teacher.jsp?currentPage=1′>第一页a>
  70. <% if(pd.getCurrentPage()==1){%>
  71. <font style=’font-size: 8pt’><a href=’teacher.jsp?currentPage=<!—->’>上一页a>
  72. <%} else{%>
  73. <font style=’font-size: 8pt’><a href=’teachert.jsp?currentPage=<!—->’>上一页a>
  74. <%} %>
  75. <% if(pd.getCurrentPage()==pd.getPageNum(listVo)){%>
  76. <font style=’font-size: 8pt’><a href=’teacher.jsp?currentPage=<!—->’>下一页a>
  77. <%} else{%>
  78. <font style=’font-size: 8pt’><a href=’teacher.jsp?currentPage=<!—->’>下一页a>
  79. <%} %>
  80. <font style=’font-size: 8pt’><a href=’teacher.jsp?currentPage=5′>最后一页a>
  81. <input type=”button” value=”翻到” onclick=”T()” class=”btn6″>
  82. <input name=”currentPage” size=”3″ value=<%=pd.getCurrentPage()%>>页
  83. td>
  84. tr>
  85. table>
  86. <br>
  87. <script>
  88. function T(){
  89. var i=form1.currentPage.value;
  90. alert(i);
  91. var j=<%=pageNum%>;
  92. if((i>0)&&(i<j)){
  93.      window.location=”teacher.jsp?currentPage=”+i;
  94. }
  95. else{
  96.      window.location=”teacher.jsp?currentPage=”+j;
  97. }
  98. }
  99. script>
  100. form>
  101. body>

http://verran.iteye.com/blog/85762