JSP網站開發基礎總結《八》

  JSP的學習總結到本篇已經八篇了,內容比較多,但都是實戰,本篇最後爲你們介紹一個小效果:百度分頁。就是當咱們遍歷的數據對象較多時,這時咱們就會看到了這個效果了,那他是如何實現的呢?下面咱們就一塊兒學習一下。javascript

 一、分頁數據獲取方法:css

  得到數據總數:html

public int getSize() {
        int num = 0;
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        conn = DBO.getConnection();
        String sql = "select count(*) from students";
        try {
            st = conn.createStatement();
            rs = st.executeQuery(sql);
            rs.next();
            num=rs.getInt(1);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return num;
    }

  計算一共分幾頁:java

public int getPageCnt(int pageRec) {
        int page = 0;
        int size = this.getSize();
        if(size>0){
            page = (size-1)/pageRec+1;
        }
        return page;
    }

  得到在該頁須要顯示的數據:mysql

public List<Student> getSome(int pageNo, int pageRec) {
        List<Student> list = new ArrayList<Student>();
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            conn=DBO.getConnection();
            String sql="select * from students limit ";
            int num = this.getSize()-pageNo*pageRec;
            int a = this.getSize()-(pageNo-1)*pageRec;
            if(num<0){
                num=0;
            }
            sql+=(num)+","+ a;
            st=conn.createStatement();
            rs=st.executeQuery(sql);
            while(rs.next()){
                Student stu = new Student();
                stu.setId(rs.getInt("id"));
                stu.setName(rs.getString("username"));
                stu.setSex(rs.getInt("sex"));
                stu.setYear(rs.getInt("age"));
                stu.setFrom(rs.getString("form"));
                stu.setSchool(rs.getString("school"));
                list.add(stu);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            DBO.close(rs, st, conn);
        }
        return list;
    }

 二、實現頁面效果代碼:sql

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.html"%>
<%@page import="com.mysql.jsp.student.Student"%>
<%@page import="com.mysql.jsp.sever.StudentMaImp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>百度分頁效果</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">

  </head>
  
  <body>
  <%
           int pageNo=1;
           if(request.getParameter("p") !=null){
            pageNo=Integer.parseInt(request.getParameter("p"));
        }
           int pageRec=5;//每頁顯示的數據條數 
           StudentMaImp smi = new StudentMaImp();  
        List<Student> list = smi.getSome(pageNo, pageRec);
        int recCnt=smi.getSize();//獲得總記錄數
        int pageCnt=smi.getPageCnt(pageRec);//獲得總頁數
   %>
    <center>
        <h1>百度分頁效果</h1>
        <hr/>
        <table border="1" width="80%">
            <TR>
                <td>編號</td><TD>ID</TD><td>姓名</td><td>性別</td><td>年齡</td><td>家鄉</td><td>學校</td>
            </TR>
            <%
                if(list.size()!=0 && pageNo>1 ){
                    for(int i=list.size()-1,j=1; i>=0; i--,j++){
                        Student student = list.get(i);
            %>
                    <tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr>
            <%
                    }
                }else{
                    for(int i=list.size()-1,j=1; i>=0&&list.size()!=0; i--,j++){
                        Student student = list.get(i);
            %>
                    <tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr>
             <%
                    }
                 }
             %>
             <tr>
                 <td colspan="7" align="center">
                   <% if(pageNo!=1){ %>
                       <a href="All_BaiDu.jsp?p=1"><span>首頁</span></a>
                  <%} %>
                  <% if(pageNo>1){ %>
                    <a href="All_BaiDu.jsp?p=<%=pageNo-1 %>"><span>上一頁</span></a>
                  <%} %>
                   <%
                       for(int i=1;i<=pageCnt;i++){
                       if(i!=pageNo){
                   %>
                       <a href="All_BaiDu.jsp?p=<%=i %>"><span><%=i%></span></a>
                <%}else{ %>
                        <span><%=i%></span></a>
                   <%}}%>
                     <% if(pageNo!=pageCnt){ %>
                       <a href="All_BaiDu.jsp?p=<%=pageNo+1 %>"><span>下一頁</span></a>
                  <%} %>               
                  <% if(pageNo!=pageCnt){ %>
                    <a href="All_BaiDu.jsp?p=<%=pageCnt %>"><span>尾頁</span></a>
                  <%} %>
                 </td>
             </tr>
        </table>
    </center>
  </body>
</html>

  效果圖:微信

  

  好了,到這裏咱們最簡單的百度分頁效果就實現了,具體的美化工做,就須要咱們的css+div+javascript知識了,你們能夠學習一下,對作網頁幫助很大。jsp


  關於JSP的基礎知識總結,到今天就爲你們總結完畢,共計8篇博客,因爲文字描述的侷限,因此你們有什麼疑問能夠留言,我會一一爲你們解答。學習

  總結了這麼多,最後給你們聊幾句,學習JSP以前你們儘可能先學習一下JAVASE的基礎知識,對你理解JSP中的代碼幫助很大,固然若是你對網站開發很感興趣,能夠學一下HTML以後再來學習JSP,這樣對你瞭解裏面的JSP語句幫助很大。不過有必要說一點的是,JSP開發如今遠沒有PHP開發那麼受關注,PHP開發無須太多的基礎,而JSP開發須要有必定的JAVA基礎。你們若是沒有JAVA基礎,建議你們學習PHP,一樣能夠達到動態網站的開發的目的,並且PHP開發對於微信端開發很方便,因此你們若是對於JSP的學習感受壓力較大,建議你們學習PHP,不過任何一門技術剛剛接觸時,都會存在不少的不懂,重要的是堅持,各類技術之間都是相通,當你們真正掌握一門技術後,再去接觸別的技術,就會達到事半功倍的效果。網站

  最後祝各位在程序猿這條路上能找到屬於本身的藍天。

相關文章
相關標籤/搜索