jsp實現分頁顯示記錄

來源:互聯網
上載者:User

第一條記錄是所有記錄中的第幾條記錄,假設每頁的第一條記錄是總記錄中的第position條記錄,那麼position=(ShowPage - 1)×PageSize+1。比如這個例子,如果要顯示第一頁,就要計算出第一頁中的第一條記錄是總的記錄中的第一條記錄;如果要顯示第二頁,就要計算出第二頁中的第一條記錄是總的記錄中的第四條記錄;如果要顯示第三頁,就要計算出第一頁中的第一條記錄是總的記錄中的第九條記錄。

<%! int pageSize=4;int pageCount;int showPage;%><!-- 串連資料庫並從資料庫中調取記錄--><%Connection con;Statement sql;ResultSet rs;try{Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){}try{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/message board","root","123456");sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//返回可滾動的結果集 rs=sql.executeQuery("select * from messageinfo");//將遊標移到最後一行 rs.last();//擷取最後一行的行號 int recordCount=rs.getRow();//計算分頁後的總數 pageCount=(recordCount%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);//擷取使用者想要顯示的頁數:String integer=request.getParameter("showPage");if(integer==null){integer="1";}try{showPage=Integer.parseInt(integer);}catch(NumberFormatException e){showPage=1;}if(showPage<=1){showPage=1;}if(showPage>=pageCount){showPage=pageCount;}//如果要顯示第showPage頁,那麼遊標應該移動到的position的值是:int position=(showPage-1)*pageSize+1;//設定遊標的位置rs.absolute(position);//用for迴圈顯示本頁中應顯示的的記錄for(int i=1;i<=pageSize;i++){%><table><tr> <th><%=rs.getString("UserName") %></th><td>發表於:<%=rs.getString("datetime") %></td></tr><tr ><th colspan="3"><textarea><%=rs.getString("content") %></textarea></th></tr></table><%rs.next();}rs.close();con.close();}catch(Exception e){e.printStackTrace();}%><br>第<%=showPage %>頁(共<%=pageCount %>頁)<br><a href="ShowMessages.jsp?showPage=1">首頁</a><a href="ShowMessages.jsp?showPage=<%=showPage-1%>">上一頁</a><%//根據pageCount的值顯示每一頁的數字並附加上相應的超連結for(int i=1;i<=pageCount;i++){%><a href="ShowMessages.jsp?showPage=<%=i%>"><%=i%></a><%}%><a href="ShowMessages.jsp?showPage=<%=showPage+1%>">下一頁</a><a href="ShowMessages.jsp?showPage=<%=pageCount%>">末頁</a><!-- 通過表單提交使用者想要顯示的頁數 --><form action="" method="get">跳轉到第<input type="text" name="showPage" size="4">頁<input type="submit" name="submit" value="跳轉"></form>




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.