亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

Jsp真分頁(yè)實(shí)例---分頁(yè)

2024-09-05 00:22:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

網(wǎng)頁(yè)的分頁(yè)功能的實(shí)現(xiàn)比較簡(jiǎn)單,實(shí)現(xiàn)方法也多種多樣。

今天總結(jié)一個(gè)簡(jiǎn)單的Jsp真分頁(yè)實(shí)例。

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

假分頁(yè):一次性從數(shù)據(jù)庫(kù)讀出表的所有數(shù)據(jù)一次性的返回給客戶端,由js來(lái)控制每一頁(yè)的顯示

真分頁(yè):由程序控制,每一次只返回一頁(yè)大小的數(shù)據(jù),顯示到客戶端

由此可以很清楚的分辨出真假分頁(yè)各自的優(yōu)缺點(diǎn):

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

但是返回給客戶端以后就非常輕松了,客戶在一段時(shí)間內(nèi)不會(huì)再像服務(wù)器端請(qǐng)求資源。但不代表可能出現(xiàn)一些意外情況,

比如說(shuō)客戶將瀏覽器關(guān)閉,重新訪問(wèn)網(wǎng)站等。所以,如果數(shù)據(jù)量相當(dāng)龐大,不建議使用用真分頁(yè)。

真分頁(yè):假分頁(yè)每次只取需要的數(shù)據(jù)返回給客戶端,比起真分頁(yè)沒(méi)有那么大的數(shù)據(jù)庫(kù)壓力。但也因?yàn)檫@個(gè)工作特性,所以假分頁(yè)

的方法需要頻繁和服務(wù)器端進(jìn)行交互。既然頻繁交互,自然也會(huì)給服務(wù)器帶來(lái)負(fù)擔(dān)。

綜上:如果數(shù)據(jù)量較小,使用假分頁(yè)的效果會(huì)更優(yōu),如果數(shù)據(jù)量龐大,使用真分頁(yè)的效果更優(yōu)。

分析完特性,下面就來(lái)列舉一個(gè)簡(jiǎn)單的真分頁(yè)實(shí)例。

真分頁(yè)是通過(guò)程序來(lái)控制的,每次向數(shù)據(jù)庫(kù)請(qǐng)求需要的數(shù)據(jù)。

簡(jiǎn)述實(shí)現(xiàn)思路業(yè)務(wù)流程:

首先:客戶端帶著page參數(shù)請(qǐng)求客戶端,若沒(méi)有帶page參數(shù),說(shuō)明是第一次訪問(wèn),則page參數(shù)默認(rèn)為0;

其次:服務(wù)端根據(jù)page參數(shù),調(diào)用相關(guān)函數(shù),從數(shù)據(jù)庫(kù)中取出表中數(shù)據(jù),封裝成相關(guān)對(duì)象,返回給客戶端,并且返回新page參數(shù)及總頁(yè)數(shù);

最后:再客戶端顯示請(qǐng)求的相關(guān)數(shù)據(jù),并根據(jù)page參數(shù)及總頁(yè)數(shù)兩個(gè)參數(shù),決定上一頁(yè)下一頁(yè)的按鈕是否可用。

數(shù)據(jù)庫(kù)操作類(lèi):

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);    }  }  //關(guān)閉連接  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;  }  //設(shè)置參數(shù)  private void setParems(String[] parems){    if(parems!=null){      for(int i=0;i<parems.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;  }}

學(xué)生類(lèi):

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;  }}

學(xué)生數(shù)據(jù)操作類(lèi)

public class StudentDao implements StudentDaoIn {@Override public ArrayList<StudentBean> 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);    ArrayList<StudentBean> list = new ArrayList<StudentBean>();    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;  }}

相關(guān)業(yè)務(wù)邏輯

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);//總頁(yè)數(shù)    request.setAttribute("page", page);//當(dāng)前頁(yè)    request.getRequestDispatcher("student.jsp").forward(request, response);        }

前臺(tái)JSP代碼:

<table id="t_stu" border="1" cellpadding="2" cellspacing="0">  <thead>    <tr>      <th>ID</th>      <th>姓名</th>      <th>年齡</th>      <th>電話</th>      <th>成績(jī)</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}頁(yè)  當(dāng)前 第${page}頁(yè) <c:choose>  <c:when test="${page>1}">    <a href="getSutent?page=${page-1}" rel="external nofollow" ><input type="button" value="上一頁(yè)" ></a>  </c:when>  <c:otherwise>    <input type="button" value="上一頁(yè)" 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="下一頁(yè)"></a>  </c:when>  <c:otherwise>    <input type="button" value="下一頁(yè)" disabled="disabled" />  </c:otherwise></c:choose>

本例是真分頁(yè)的一個(gè)簡(jiǎn)單實(shí)現(xiàn),有著明顯的缺點(diǎn)。

例如:

1.在后臺(tái)相關(guān)業(yè)務(wù)邏輯處,只對(duì)page做了簡(jiǎn)單的判斷,因?yàn)椴樵兿嚓P(guān)page時(shí),參數(shù)是寫(xiě)入前臺(tái)a標(biāo)簽中的,所以懂技術(shù)的用戶,可以隨意改動(dòng)其值

由此查詢數(shù)據(jù)庫(kù)可能帶來(lái)意想不到的錯(cuò)誤。

2.功能不夠完善,僅提供了上一頁(yè)下一頁(yè)按鈕的簡(jiǎn)單功能。

另外:實(shí)現(xiàn)假分頁(yè)時(shí)可以結(jié)合ajax和json。以此可實(shí)現(xiàn)無(wú)刷新翻頁(yè),看起來(lái)功能和真分頁(yè)一樣。。。

 

注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JSP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
色综合av在线| 久久久精品中文字幕麻豆发布| 九色综合日本| 在线xxxx| 精品无码人妻一区| 九九热免费精品视频| 97中文字幕在线| 美女黄色一级视频| 亚洲网站一区| 亚洲精品综合久久中文字幕| 亚洲男人7777| 国产精品视频久久久久久久| 手机看片福利永久国产日韩| 免费一级suv好看的国产网站| gay网站在线| 另类图片第一页| 中文字幕乱码人妻无码久久| 相泽南亚洲一区二区在线播放| 午夜18视频在线观看| heyzo在线欧美播放| 日韩av免费观影| 亚洲成人精品电影在线观看| 91无套直看片红桃| 中文字幕理论片| 黄色一级视频在线观看| 日韩在线视频免费观看| 亚洲精品国偷自产在线99热| 日韩最新中文字幕| 日产精品久久久| 欧美成年人视频网站| 91av在线视频观看| 亚洲国产日韩一区无码精品久久久| 拍拍拍999自拍偷| 欧美极品欧美精品欧美| 国产剧情演绎av| 九九热在线观看| 欧美在线视频播放| 国产精品盗摄一区二区三区| 亚洲男人的天堂在线| 亚欧洲精品视频| 欧洲午夜精品| 欧美人与性动交α欧美精品图片| 欧美理论电影大全| 欧美少妇性xxxx| 美女扒开尿口让男人操亚洲视频网站| 久久久久久噜噜噜久久久精品| 国产福利免费在线观看| 亚洲午夜精品17c| 不卡的免费av| 97欧美在线视频| 欧美三日本三级少妇99| 成人激情开心网| 美女网站视频色| www.日本在线播放| 宅男视频免费在线观看视频| 成人国内精品久久久久一区| 裸体大乳女做爰69| 日本美女一区二区三区| 人妻少妇一区二区三区| 成人免费av电影| 日韩不卡在线| 第四色在线视频| 色婷婷久久综合中文久久蜜桃av| 视频一区免费观看| 蜜桃av导航| 欧美精品精品精品精品免费| 韩国女同性做爰三级| 中文字幕日韩国产| 7777精品久久久久久| 精品久久久久久久久久久久| 免费观看成人网| 国产三级在线观看| 亚洲免费伊人电影| 日本免费看片网站| 国产视频网站在线| 国产精品亚洲аv天堂网| 九色porny视频国产网曝| 中文亚洲av片在线观看| 日韩精品中文字幕视频在线| 天堂中文8资源在线8| 视频国产在线观看| 91精品亚洲一区在线观看| 国产日韩欧美一区二区三区视频| 麻豆一区在线观看| 少妇精品视频一区二区免费看| 农村老熟妇乱子伦视频| 亚洲蜜桃精久久久久久久| 亚洲自拍偷拍二区| 国产福利91精品| 国产精品日韩欧美| 美女黄色免费看| 久久亚洲捆绑美女| 日本精品一区二区三区高清| 国产精品蜜臀在线观看| 日韩精品亚洲一区| 日本www在线视频| 三级黄色片在线观看| 香艳视频网站| 精品这里只有精品| www.亚洲免费视频| 一本久道综合久久精品| 国产情侣小视频| 成熟人妻av无码专区| av免费观看久久| 91欧洲在线视精品在亚洲| 精品人妻一区二区三区日产乱码| wwww在线观看免费视频| 亚洲国产日韩欧美在线动漫| 久久精品久久精品国产大片| 久久亚洲精品人成综合网| 国产国语videosex另类| 日本人妻伦在线中文字幕| 91资源在线播放| 久久99精品国产.久久久久久| 国产一区免费在线| 亚洲午夜久久久久久久| 欧美freesex| 欧美日韩国产二区| 欧美三日本三级少妇三2023| 精品影院一区二区久久久| 鲁大师私人影院在线观看| 久久福利影视| 日本乱子伦xxxx| 欧美福利网址| 玖玖在线播放| 美女视频久久黄| 内射国产内射夫妻免费频道| 精品露脸国产偷人在视频| 影音先锋2020色资源网| 国产91精品看黄网站在线观看| 国产精品成久久久久三级| 亚洲永久无码7777kkk| 免费成人深夜夜行网站视频| 中文字幕久久久久久久| 亚洲人午夜精品天堂一二香蕉| 日本中文字幕在线| 肉色超薄丝袜脚交69xx图片| 国产精品国产三级国产三级人妇| 国产成人激情小视频| 678五月天丁香亚洲综合网| 国产成人免费看一级大黄| 国产精品成人网| 香蕉久久久久久av成人| 色综合天天狠狠| 视频一区视频二区欧美| 日本不卡一区二区三区视频| 久久久久久一二三区| 欧美国产精品| 国产亚洲一区二区三区在线观看| 亚洲精品v亚洲精品v日韩精品| 亚洲色成人www永久网站| 亚洲综合五月天婷婷丁香| www.国产在线播放| 亚洲欧洲日韩综合二区| 久久99精品国产一区二区三区| 成人h动漫免费观看网站| 日韩av免费在线观看| 色网站免费观看| 天美传媒免费在线观看| 欧美一区二区三区在线播放| 国内精品在线观看视频| 日本一区二区三区高清不卡| 18一19gay欧美视频网站| 777奇米四色成人影色区| 久久久激情视频| 久久久成人精品| 国产69精品一区二区亚洲孕妇| 亚洲一区在线观看免费| 午夜理伦三级做爰电影| 在线观看国产精品日韩av| 亚洲精品国产电影| 欧美三级超在线视频| 国产一区二区在线观看免费播放| 韩国成人动漫在线观看| 国产片一区二区| 三级影片在线观看| 久久综合九色欧美狠狠| 日本久久久久久久久久久久| 国产区一区二区| 国产精品偷伦免费视频观看的| 成人国产精品免费观看| 性欧美18—19sex性高清| 国产无遮挡又黄又爽免费网站| 91精品啪在线观看国产| 曰皮视频在线播放免费的| 精品美女在线观看视频在线观看| 99热国产在线| 亚洲黄一区二区| 无码无套少妇毛多18pxxxx| 日日摸天天添天天添破| 免费视频观看成人| 亚洲国产视频在线观看| 色与欲影视天天看综合网| 日韩免费精品视频| 国产欧美日韩精品一区二区三区| 中文字幕 91| 久久成人在线观看| 欧美牲交a欧美牲交aⅴ免费下载| 久久深夜福利| 中文在线8资源库| 国产无遮挡免费视频| 97国产成人无码精品久久久| a级影片在线观看| gv天堂gv无码男同在线观看| 亚洲在线成人精品| 一区二区日韩视频| 国产精品suv一区二区三区| 中文字幕在线播放视频| 一本一道久久a久久综合蜜桃| 丝袜在线观看| 欧美电影一区二区| 日韩av免费| 久久精品国产成人一区二区三区| 精品国产髙清在线看国产毛片| 在线免费观看av影视天堂| 午夜精品视频在线观看一区二区| 99视频精品| 国内精品久久久久久久影视简单| 日本三级韩国三级久久| 91超碰在线观看| 成人软件在线观看| freemovies性欧美| 欧美一区二区三区高清视频| 色网站免费观看| 免费看精品久久片| 全部免费毛片在线播放一个| 四虎4hu永久免费入口| 日本成本人片免费观看| 中文字幕日本在线观看| 草草视频在线| 亚洲男人av在线| 精品精品国产三级a∨在线| 大陆一级毛片免费观看| 亚洲综合免费观看高清在线观看| 亚洲女人被黑人巨大进入al| 91丨精品丨国产| 第四色中文综合网| 国产尤物视频在线观看| 日韩欧美国产大片| 日韩av综合网站| 人人澡人人透人人爽| 日韩欧美国产一区在线观看| 五月婷婷六月婷婷| 91最新地址在线播放| 日韩极品少妇| 欧美女同在线观看| 九九热久久66| 亚洲大胆美女视频| 一级特黄aaa大片| 日本中文字幕视频在线| 美腿丝袜亚洲三区| 国产精品7m视频| 日本精品一区二区三区在线| 欧美精品无码一区二区三区| 精品国产91亚洲一区二区三区www| 久草这里只有精品视频| 丰满少妇乱子伦精品看片| 久久av资源站| 97超级碰碰| 国精品产品一区| 国产1区2区3区精品美女| 国产喷白浆一区二区三区| 欧美日韩大片在线观看| 波多野结衣精品久久| 国产亚洲精品日韩| 中文在线观看免费视频| 亚洲先锋成人| 天堂中文字幕| 伊人再见免费在线观看高清版| 日韩一区二区不卡| 日本午夜精品理论片a级app发布| 国产精品一区二区三区观看| 巨大荫蒂视频欧美另类大| 亚洲毛片免费看| 国产毛片精品久久| 亚洲视频一二三四| 一区二区三区视频国产日韩| 91免费视频观看| 国产手机视频一区二区| 99免费观看视频| 亚洲精品一区二区三区福利| 国产精品嫩草影院8vv8| 天堂v在线视频| 久草手机在线观看| 成人黄色大片网站| 日本不卡一区二区在线观看| 日韩免费看片| 污污的视频免费| 亚洲精品理论电影| 老司机午夜在线视频| 中文字幕免费在线观看视频一区| 激情婷婷亚洲| 国产精品天天看天天狠| 高清日韩中文字幕| 中文字幕中文字幕在线中一区高清| 久久亚洲AV无码专区成人国产| 爱情岛论坛vip永久入口| 精品视频一区二区在线观看| 精品亚洲a∨一区二区三区18| 国产精品国产自产拍高清av| 香蕉视频禁止18| 午夜看片在线免费| 国产亚洲美女久久| 国产一级淫片a| 国产精品护士白丝一区av| 三日本三级少妇三级99| 玖玖国产精品视频| 日本精品视频一区| 欧美日韩一区高清| 亚洲成人999| 亚洲丝袜精品丝袜在线| 国产精品igao视频| 日本在线电影一区二区三区| 欧美一区二区三区| 久久99精品久久久久久琪琪| 国产成人免费xxxxxxxx| 成人av网址在线| 缅甸午夜性猛交xxxx| 精品视频国内| 四色永久网址| 岛国av免费观看| 视频一区视频二区视频三区高| 国产精品一区二区婷婷| 99中文字幕| 久久精品日产第一区二区三区乱码| 亚洲.欧美.日本.国产综合在线| 麻豆国产原创| 大片在线观看网站免费收看|