婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Jsp真分頁實例---分頁

Jsp真分頁實例---分頁

熱門標簽:電銷機器人免培訓 外呼系統使用方法 如何看懂地圖標注點 自繪地圖標注數據 海外圖書館地圖標注點 電話機器人需要使用網絡嗎 潤滑油銷售電銷機器人 南通通訊外呼系統產品介紹 給地圖標注得傭金

網頁的分頁功能的實現比較簡單,實現方法也多種多樣。

今天總結一個簡單的Jsp真分頁實例。

首先,提到分頁就要先明確一個概念,何為真分頁何謂假分頁。

假分頁:一次性從數據庫讀出表的所有數據一次性的返回給客戶端,由js來控制每一頁的顯示。

真分頁:由程序控制,每一次只返回一頁大小的數據,顯示到客戶端。

由此可以很清楚的分辨出真假分頁各自的優缺點:

假分頁:由于一次性讀出所有數據并返回給客戶端,如果數據量龐大,所以這一次的動作可能是非常消耗服務器資源和帶寬的,

但是返回給客戶端以后就非常輕松了,客戶在一段時間內不會再像服務器端請求資源。但不代表可能出現一些意外情況,

比如說客戶將瀏覽器關閉,重新訪問網站等。所以,如果數據量相當龐大,不建議使用用真分頁。

真分頁:假分頁每次只取需要的數據返回給客戶端,比起真分頁沒有那么大的數據庫壓力。但也因為這個工作特性,所以假分頁

的方法需要頻繁和服務器端進行交互。既然頻繁交互,自然也會給服務器帶來負擔。

綜上:如果數據量較小,使用假分頁的效果會更優,如果數據量龐大,使用真分頁的效果更優。

分析完特性,下面就來列舉一個簡單的真分頁實例。

真分頁是通過程序來控制的,每次向數據庫請求需要的數據。

簡述實現思路業務流程:

首先:客戶端帶著page參數請求客戶端,若沒有帶page參數,說明是第一次訪問,則page參數默認為0;

其次:服務端根據page參數,調用相關函數,從數據庫中取出表中數據,封裝成相關對象,返回給客戶端,并且返回新page參數及總頁數;

最后:再客戶端顯示請求的相關數據,并根據page參數及總頁數兩個參數,決定上一頁下一頁的按鈕是否可用。

數據庫操作類:

public class DBBean {
  private Connection con;

  private PreparedStatement pstmt;
  private ResultSet rs;
  private String dbName ="test";
  private String dbuser = "root";
  private String dbpass ="******";
  
  static{
    try{
      Class.forName("com.mysql.jdbc.Driver");
    }catch(ClassNotFoundException e){
      System.out.println(e);
    }
    
  }
  
  public void prepareConnection(){
    try{
      con=DriverManager.getConnection("jdbc:mysql://localhost:3306/"+dbName,dbuser,dbpass);
    }catch(SQLException e){
      System.out.println(e);
    }
  }
  //關閉連接
  public void close(){
      try {
        if(con!=null)
          con.close();
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
      con = null;
      try {
        if(pstmt!=null)
          pstmt.close();
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
      pstmt = null;
  }
  //設置參數
  private void setParems(String[] parems){
    if(parems!=null){
      for(int i=0;iparems.length;i++){
        try {
          pstmt.setString(i+1, parems[i]);
        } catch (SQLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
    }
  }
  public ResultSet executeQuery(String sql,String[] parems){
    ResultSet res = null;
    prepareConnection();
    try {
      pstmt = con.prepareStatement(sql);
      setParems(parems);
      res = pstmt.executeQuery();
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }finally{
     }
    return res;
  }
}

學生類:

public class StudentBean {
  private long id;
  private String name;
  private String phone;
  private int age;
  private int score;
  public long getId() {
    return id;
  }
  public void setId(long id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getPhone() {
    return phone;
  }
  public void setPhone(String phone) {
    this.phone = phone;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public int getScore() {
    return score;
  }
  public void setScore(int score) {
    this.score = score;
  }
}

學生數據操作類

public class StudentDao implements StudentDaoIn {
@Override 
public ArrayListStudentBean> findByPage(int page){
    DBBean db = new DBBean();
    int begin = (page-1) * 5;
    String sql = "select * from t_student limit "+begin+",5";
    ResultSet rs = db.executeQuery(sql,null);
    ArrayListStudentBean> list = new ArrayListStudentBean>();
    try {
      while(rs.next()){
        StudentBean st = new StudentBean();
        st.setName(rs.getString("name"));
        st.setAge(rs.getInt("age"));
        st.setId(rs.getInt("id"));
        st.setPhone(rs.getString("phnoe"));
        st.setScore(rs.getInt("score"));
        list.add(st);
      }
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return list;
  }
  @Override 
  public int userCount(){
    DBBean db = new DBBean();
    String sql = "select count(*) from t_student";
    ResultSet rs = db.executeQuery(sql, null);
    int count = 0;
    try {
      rs.next();
      count = rs.getInt(1);
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return count;
  }
}

相關業務邏輯

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String page = null;
    page = request.getParameter("page");
    if(page == null || page=="")
      page = "1";
    StudentDao studao = new StudentDao();
    request.setAttribute("student",studao.findByPage(Integer.parseInt(page)));
    request.setAttribute("pagenum",studao.userCount()/5+1);//總頁數
    request.setAttribute("page", page);//當前頁
    request.getRequestDispatcher("student.jsp").forward(request, response);  
    
  }

前臺JSP代碼:

table id="t_stu" border="1" cellpadding="2" cellspacing="0">
  thead>
    tr>
      th>ID/th>
      th>姓名/th>
      th>年齡/th>
      th>電話/th>
      th>成績/th>
    /tr>
  /thead>
  c:forEach items="${student}" var="st">
    tr>
      td>${st.getId()}/td>
      td>${st.getName()}/td>
      td>${st.getAge()}/td>
      td>${st.getPhone()}/td>
      td>${st.getScore()}/td>
    /tr>
  /c:forEach>
/table>
br>
共 ${pagenum}頁  當前 第${page}頁 
c:choose>
  c:when test="${page>1}">
    a href="getSutent?page=${page-1}" rel="external nofollow" >input type="button" value="上一頁" >/a>
  /c:when>
  c:otherwise>
    input type="button" value="上一頁" disabled="disabled" />
  /c:otherwise>
/c:choose>
c:choose>
  c:when test="${page!=pagenum}">
    a href="getSutent?page=${page+1}" rel="external nofollow" >input type="button" value="下一頁">/a>
  /c:when>
  c:otherwise>
    input type="button" value="下一頁" disabled="disabled" />
  /c:otherwise>
/c:choose>

本例是真分頁的一個簡單實現,有著明顯的缺點。

例如:

1.在后臺相關業務邏輯處,只對page做了簡單的判斷,因為查詢相關page時,參數是寫入前臺a標簽中的,所以懂技術的用戶,可以隨意改動其值

由此查詢數據庫可能帶來意想不到的錯誤。

2.功能不夠完善,僅提供了上一頁下一頁按鈕的簡單功能。

另外:實現假分頁時可以結合ajax和json。以此可實現無刷新翻頁,看起來功能和真分頁一樣。。。

您可能感興趣的文章:
  • jsp分頁顯示的實現代碼
  • JSP分頁顯示的實例代碼
  • jsp實現上一頁下一頁翻頁功能(示例代碼)

標簽:大連 廣州 樂山 南京 黃石 貸款邀約 銅川 內江

巨人網絡通訊聲明:本文標題《Jsp真分頁實例---分頁》,本文關鍵詞  Jsp,真,分頁,實例,---分頁,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Jsp真分頁實例---分頁》相關的同類信息!
  • 本頁收集關于Jsp真分頁實例---分頁的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品亚洲成人| 日韩一级大片在线| 蜜桃免费网站一区二区三区 | 国产精品久久久久久久久搜平片 | 欧美视频一区二区三区在线观看| 久久久综合精品| 欧美日韩国产bt| 一个色妞综合视频在线观看| 日韩精品一二三区| 亚洲成人第一页| 欧美视频一区二区三区| 99re视频精品| 亚洲欧美一区二区三区国产精品 | 国产一区在线观看视频| 99国产精品国产精品久久| 国产一区二区三区香蕉| 国产亚洲福利社区一区| 久久在线观看免费| 国产不卡免费视频| 国产91色综合久久免费分享| 亚洲国产高清在线观看视频| 久久久www成人免费毛片麻豆| 国产91精品一区二区| 精品人伦一区二区色婷婷| 欧美r级在线观看| 国产在线精品一区二区三区不卡| 美腿丝袜一区二区三区| 亚洲精品在线一区二区| 久久这里只有精品首页| 99久久精品国产麻豆演员表| 91性感美女视频| 日韩激情一二三区| 久久激五月天综合精品| 紧缚捆绑精品一区二区| 国产网站一区二区| 色狠狠一区二区三区香蕉| 免费成人在线网站| 中文字幕在线免费不卡| 色婷婷久久久久swag精品 | 亚洲国产一二三| 亚洲午夜在线观看视频在线| 日韩欧美一二三区| 亚洲成av人片观看| 麻豆精品久久久| 国产精品三级视频| 亚洲国产综合人成综合网站| 欧美一级片在线观看| 国产亚洲综合色| 777亚洲妇女| 中文成人综合网| 欧美一区二区三区性视频| 久久免费偷拍视频| 欧美一区二区三区影视| 欧美精品第1页| 久久久久久久久伊人| 在线免费观看成人短视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 久久老女人爱爱| 色狠狠一区二区| 久久亚区不卡日本| 久热成人在线视频| 国产在线播放一区| 精品欧美乱码久久久久久1区2区| 国产精品久久看| 国产黄色成人av| 亚洲欧洲av在线| 精品美女在线观看| 91麻豆精品在线观看| 亚洲一区二区三区四区五区中文| 26uuu久久天堂性欧美| 色综合中文字幕国产| 成人激情av网| 粉嫩aⅴ一区二区三区四区五区| 亚洲激情网站免费观看| 国产精品毛片久久久久久久| 欧美一区二区播放| 91浏览器入口在线观看| 国产精品91一区二区| 懂色av中文字幕一区二区三区| 亚洲国产综合视频在线观看| 九九视频精品免费| 婷婷国产v国产偷v亚洲高清| 18涩涩午夜精品.www| 懂色av一区二区三区免费观看| 久久av老司机精品网站导航| 欧美精品日韩一本| 91官网在线免费观看| 56国语精品自产拍在线观看| 欧美午夜理伦三级在线观看| 九色综合狠狠综合久久| 免费精品99久久国产综合精品| 亚洲国产激情av| 欧美二区乱c少妇| 欧美精品色综合| 3d成人h动漫网站入口| 国产日韩欧美a| 国产精品美女久久久久久2018| 亚洲成人自拍网| 亚洲国产中文字幕| 国产精品亚洲专一区二区三区 | 91精品国产免费| www亚洲一区| 日本一区二区三区dvd视频在线| 一区二区三区在线免费| 亚洲线精品一区二区三区八戒| 蜜臀av性久久久久蜜臀av麻豆| 免费成人av资源网| 波多野结衣欧美| 在线这里只有精品| 久久久一区二区三区捆绑**| 欧美激情一区在线| 亚洲韩国精品一区| 激情文学综合丁香| 亚洲视频在线一区二区| 天堂蜜桃一区二区三区| 日韩高清国产一区在线| 久久99精品久久久| 免费不卡在线观看| 在线观看一区二区视频| 欧美一级免费大片| 一区二区激情小说| 精品一区二区三区不卡 | 精品国产乱码久久久久久久久 | 国产1区2区3区精品美女| 欧美一区二区三区视频免费 | 成人av第一页| 欧美v亚洲v综合ⅴ国产v| 国产精品视频看| 久久69国产一区二区蜜臀| 国产成人精品aa毛片| 日韩欧美国产一区二区三区| 日本一区二区免费在线| 激情综合色播五月| 在线精品视频一区二区| 亚洲乱码日产精品bd| 免费黄网站欧美| 精品视频在线免费| 中文字幕免费不卡| 中文字幕中文字幕在线一区| 亚洲国产成人av网| 91在线视频网址| 欧美精品一区二区在线播放 | 精品国产精品一区二区夜夜嗨| 北条麻妃一区二区三区| wwwwxxxxx欧美| 国产老女人精品毛片久久| 欧美成人精品高清在线播放| 久久精品夜夜夜夜久久| 国产美女精品在线| 99re视频这里只有精品| 一区二区三区在线高清| 国产原创一区二区三区| 欧美精品第1页| 亚洲国产精品二十页| 国产成人午夜精品5599| 99riav一区二区三区| 亚洲韩国一区二区三区| 99精品1区2区| 中文字幕在线免费不卡| 亚洲福利视频三区| 精品视频一区二区三区免费| 亚洲乱码国产乱码精品精可以看| 91成人免费网站| 亚洲欧美一区二区三区国产精品| 久久电影国产免费久久电影| 欧美日本韩国一区二区三区视频| 精品国产乱子伦一区| 夜夜嗨av一区二区三区中文字幕| 欧美日韩精品一区二区| 中文字幕在线一区免费| 粉嫩在线一区二区三区视频| 欧美色电影在线| 亚洲制服欧美中文字幕中文字幕| eeuss影院一区二区三区| 日韩精品一区二区三区三区免费 | 蜜桃久久久久久| 91精品免费在线观看| 一区二区三区在线免费| 欧美日韩一区成人| 午夜精品在线看| 国产成人高清在线| 国产欧美综合在线观看第十页| 懂色av一区二区三区免费观看| 国产精品区一区二区三区 | 国产欧美精品国产国产专区| 成人国产精品免费| 亚洲欧洲日韩av| 精品污污网站免费看| 一区二区国产视频| 欧美放荡的少妇| 麻豆精品在线播放| 日韩一区二区免费在线电影| 久久精品国产99国产| 欧美日韩另类国产亚洲欧美一级| 日韩中文欧美在线| av午夜一区麻豆| 狠狠色狠狠色综合系列| 成人免费一区二区三区在线观看| 欧美亚日韩国产aⅴ精品中极品| 蜜臀av一区二区|