麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JSP > 正文

jsp分頁(yè)顯示的實(shí)現(xiàn)代碼

2024-09-05 00:21:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了jsp分頁(yè)顯示的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下

最近這幾天在做JSP留言板設(shè)計(jì)的過(guò)程中,遇到了一個(gè)問(wèn)題。先看一張截圖:

jsp分頁(yè)顯示的實(shí)現(xiàn)代碼

 這是隨便在一個(gè)新聞的留言頁(yè)面截的圖,假如留言條數(shù)太多,那整個(gè)頁(yè)面得排好長(zhǎng)好長(zhǎng),這就直接給用戶造成了麻煩、不舒服的感受,所以,解決這個(gè)問(wèn)題,通常采用分頁(yè)顯示的方法。
       要把頁(yè)面顯示方式設(shè)計(jì)成這樣的方式,通常需要用到這幾個(gè)基本變量:pageSize(每個(gè)頁(yè)面所顯示的記錄數(shù))、pageCount(一共有多少個(gè)頁(yè)面)、showPage(目前顯示第幾頁(yè))、recordCount(總的記錄數(shù)),為了方便理解,畫(huà)了一張圖:

jsp分頁(yè)顯示的實(shí)現(xiàn)代碼

如果想要把頁(yè)面顯示做成這樣的效果,在這張圖中pageSize=4,pageCount=3,showPage=1,recordCount=12。思路是,如果要顯示那個(gè)頁(yè)面,就要先算出來(lái)每個(gè)頁(yè)面第一條記錄是所有記錄中的第幾條記錄,假設(shè)每頁(yè)的第一條記錄是總記錄中的第position條記錄,那么position=(ShowPage - 1)×PageSize+1。比如上圖這個(gè)例子,如果要顯示第一頁(yè),就要計(jì)算出第一頁(yè)中的第一條記錄是總的記錄中的第一條記錄;如果要顯示第二頁(yè),就要計(jì)算出第二頁(yè)中的第一條記錄是總的記錄中的第四條記錄;如果要顯示第三頁(yè),就要計(jì)算出第一頁(yè)中的第一條記錄是總的記錄中的第九條記錄。
       在JSP中的核心代碼為如下(用的數(shù)據(jù)庫(kù)為MySQL):

復(fù)制代碼 代碼如下:


<%!  int pageSize=4;
 int pageCount;
 int showPage;
 %>

<!-- 連接數(shù)據(jù)庫(kù)并從數(shù)據(jù)庫(kù)中調(diào)取記錄-->
<%
 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);
  //返回可滾動(dòng)的結(jié)果集
  rs=sql.executeQuery("select * from messageinfo");
  //將游標(biāo)移到最后一行
  rs.last();
  //獲取最后一行的行號(hào)
  int recordCount=rs.getRow();
  //計(jì)算分頁(yè)后的總數(shù)
  pageCount=(recordCount%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);

  //獲取用戶想要顯示的頁(yè)數(shù):
  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頁(yè),那么游標(biāo)應(yīng)該移動(dòng)到的position的值是:
  int position=(showPage-1)*pageSize+1;
  //設(shè)置游標(biāo)的位置
  rs.absolute(position);
  //用for循環(huán)顯示本頁(yè)中應(yīng)顯示的的記錄
  for(int i=1;i<=pageSize;i++){  
 %>
   <table>
    <tr>
     <th><%=rs.getString("UserName") %></th>
     <td>發(fā)表于:<%=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 %>頁(yè)(共<%=pageCount %>頁(yè))
 <br>
 <a href="ShowMessages.jsp?showPage=1">首頁(yè)</a>
 <a href="ShowMessages.jsp?showPage=<%=showPage-1%>">上一頁(yè)</a>
<% //根據(jù)pageCount的值顯示每一頁(yè)的數(shù)字并附加上相應(yīng)的超鏈接
  for(int i=1;i<=pageCount;i++){
 %>
   <a href="ShowMessages.jsp?showPage=<%=i%>"><%=i%></a>
<% }
 %> 
 <a href="ShowMessages.jsp?showPage=<%=showPage+1%>">下一頁(yè)</a>
 <a href="ShowMessages.jsp?showPage=<%=pageCount%>">末頁(yè)</a>
 <!-- 通過(guò)表單提交用戶想要顯示的頁(yè)數(shù) -->
 <form action="" method="get">
  跳轉(zhuǎn)到第<input type="text" size="4">頁(yè)
  <input type="submit" value="跳轉(zhuǎn)">
 </form> 

運(yùn)行結(jié)果如下(為了簡(jiǎn)化代碼,已經(jīng)網(wǎng)頁(yè)布局相關(guān)代碼去掉,此處僅指功能):

jsp分頁(yè)顯示的實(shí)現(xiàn)代碼

可以跳轉(zhuǎn)到首頁(yè)、上一頁(yè)、下一頁(yè)、末頁(yè),可以手動(dòng)在數(shù)字上指定頁(yè)數(shù),也可以在輸入框中輸入要顯示的頁(yè)數(shù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久影院午夜 | av电影免费播放 | 国产黄色一级大片 | 日本中文字幕久久 | 国产精品久久久久一区二区 | 成人一级黄色大片 | 一级做a在线观看 | 综合网日日天干夜夜久久 | 91网站在线播放 | 国产精品一区二区三区在线播放 | 在线视频a | 黄视频网站免费在线观看 | 国产成人精品午夜视频' | 日本aaa一级片 | www.99久 | 久久久国产一级片 | 免费在线观看成年人视频 | 狠狠干天天操 | 久久久久久久久久久久久久av | 国产成人av免费看 | av之家在线观看 | 男人的天堂色偷偷 | 国产视频导航 | 国产羞羞视频在线观看 | 欧美一级片免费在线观看 | 精品国产一区二区三区久久久 | av在线免费观看网 | 国产女厕一区二区三区在线视 | 久久国产免费视频 | 国产精品视频六区 | 九九热在线视频观看这里只有精品 | 日韩美香港a一级毛片 | 99激情视频| 男男羞羞视频网站国产 | 久久久国产精品成人免费 | 久久精品一区二区三区国产主播 | 日韩av片在线播放 | 欧美视频黄色 | 草操视频 | 国产成人综合在线视频 | 中文字幕极速在线观看 |