首页 > 代码库 > JSP 页面实现数据分页

JSP 页面实现数据分页

  1 <%@ page import="java.sql.*" %>  2 <%--  3   Created by IntelliJ IDEA.  4   User: lx_sunwei  5   Date: 14-1-4  6   Time: 下午5:45  7   To change this template use File | Settings | File Templates.  8 --%>  9 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 10 <% 11     int maxPage = 0  //一共有多少页 12             ,maxRowCount     //一共有多少行 13             ,rowsPerPage     //每页显示多少行 14             ,curPage;        //当前页页码 15     Connection conn = null;  //数据库连接对象 16     Statement st = null;     //SQL语句对象 17     ResultSet rs = null;     //结果集对象 18  19     rowsPerPage = 5;         //设置每页显示5行 20  21     String curpage1 = request.getParameter("page");  //取得当前页页码 22     if (curpage1 == null){  //若没有page参数 23         curPage = 1; 24     }else { 25         curPage = Integer.parseInt(curpage1);  //字符串转换为整数 26         if (curPage < 1) 27             curPage = 1; 28     } 29  30     String url = "jdbc:oracle:thin:@localhost:1521:orcl";  //连接字符串 31     try { 32         Class.forName("oracle.jdbc.driver.OracleDriver");  //装载驱动 33     } catch (ClassNotFoundException e) { 34         e.printStackTrace(); 35     } 36     try { 37         conn = DriverManager.getConnection(url,"scott","tiger");  //创建连接对象 38         st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);  //设置结果集 39         String sql = "select * from emp";  //SQL语句 40         rs = st.executeQuery(sql);  //执行查询 41  42         rs.last();  //移动光标到结果集最后一行 43         maxRowCount = rs.getRow();  //返回当前行的行号 即总共的行数 44         maxPage = (maxRowCount + rowsPerPage - 1) / rowsPerPage;  //总页数 45         if (curPage > maxPage) 46             curPage = maxPage; 47     } catch (SQLException  e) { 48         e.printStackTrace(); 49     } 50 %> 51 <html> 52 <head> 53     <meta http-equiv="content-type" content="text/html" charset="utf-8"> 54     <title>JSP分页</title> 55     <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/css.css"> 56 </head> 57 <body> 58 <div style="margin-left: 30%;margin-top: 10%"> 59     <table> 60         <caption>SCOTT用户,EMP表中的数据</caption> 61         <tr>  <!--表头--> 62             <th>EMPNO</th> 63             <th>ENAME</th> 64             <th>JOB</th> 65             <th>MGR</th> 66             <th>HIREDATE</th> 67             <th>SAL</th> 68             <th>COMM</th> 69             <th>DEPTNO</th> 70         </tr> 71         <% 72             if (maxPage > 0)  { 73                 try { 74                     rs.absolute((curPage - 1) * rowsPerPage + 1);  //移动光标到当前页的第一行 75                     int i = 0; 76                     while (i < rowsPerPage && !rs.isAfterLast()){  //循环输出当前的数据 77         %> 78         <tr> 79             <td><%= rs.getBigDecimal("EMPNO") %></td> 80             <td><%= rs.getString("ENAME") %></td> 81             <td><%= rs.getString("job") %></td> 82             <td><%= rs.getBigDecimal("MGR") %></td> 83             <td><%= rs.getDate("HIREDATE") %></td> 84             <td><%= rs.getBigDecimal("SAL") %></td> 85             <td><%= rs.getBigDecimal("COMM") %></td> 86             <td><%= rs.getBigDecimal("DEPTNO")%></td> 87         </tr> 88         <%if (rs.next()){ 89             i++; 90         } 91         } 92         %> 93         <% 94                     rs.close(); 95                     st.close(); 96                     conn.close(); 97  98                 } catch (SQLException e) { 99                     e.printStackTrace();100                 }101             }102         %>103     </table>104 </div>105 <div style="text-align: center; margin-top: 10%" >106     第<%=curPage%>页,共<%=maxPage%>页&nbsp;&nbsp;&nbsp;107     <%--第一页不能向前翻,最后一页不能向后翻。点击首页、尾页跳至第一页、最后一页--%>108     <%if (curPage > 1)109     {%>110     <a href="http://www.mamicode.com/pagemain.jsp?page=1">首页</a>111     <a href="http://www.mamicode.com/pagemain.jsp?page=">上一页</a>112     <%}else {%>113     首页 上一页   <!--不能被触发-->114     <%}%>&nbsp;115 116     <%if (curPage < maxPage){%>117     <a href="http://www.mamicode.com/pagemain.jsp?page=">下一页</a>118     <a href="http://www.mamicode.com/pagemain.jsp?page=">尾页</a>119     <%}else {%>120     下一页 尾页  <!--不能被触发-->121     <%}%>&nbsp;&nbsp;&nbsp;转至第&nbsp;<form name="form1" action="pagemain.jsp" method="get">122     <label>123         <select name="page" onchange="document.form1.submit()">124             <%125                 for (int j = 1; j <= maxPage; j++) {126                     if (j == curPage) {127             %>128             <option selected value=http://www.mamicode.com/<%=j  //当前页页码默认选中129             %>><%= j %></option>130             <%} else {%>131             <option value=http://www.mamicode.com/<%= j132             %>><%= j%></option>133             <%134                     }135                 }136             %>137         </select>&nbsp;页138     </label>139 </form>140 </div>141 </body>142 </html>

 

JSP 页面实现数据分页