第一次做的jsp分页,详细代码。。。。

      自己学jsp也有了一段时间,而且自己现在上的课是java web现在雪儿基础做了一个最简单的jsp页面,代码都放在一个页面,自己准备在改进,一步步来,这里的代码可能不是很完美,没事,下面接下来会有大概两篇关于分页的记载。今天开始我要记载自己学jsp的地点滴滴,学到一个东西觉得有点价值的我就会记载上来,多收年来还可以回忆下自己曾经学这的过程,再过几天就要靠“中级网络工程师”,可惜我们看书啊,这几天在强补以下,希望能过啊,最近是在是太多事了,哎,自己不会懂得舍取现在来说jsp分页吧。

      首先要理清自己的对于分页的理解,我在做分页的时候在网上也找了好多资料,记得都一般般,代码复制下来都是运行不了,所以我就记载的想熟悉点吧。

      要定义以下几个变量,并且要理解相应的意思,这样代码就好些了。

1 int pageCount =0//所有的页数
2 int pageNow=1//现在显示页数即是现在显示的是第几页
3 int pageSize=2// 每页显示多少条记录
4 int rowCount=0//数据库一共有多少条记录,以便算页数
View Code

      接着我们就是考虑每一页的显示情况。比如说我们每页要显示两条数据,这样我们的sql语句就要用到limit

    

1 String sql ="select empno,ename,job,hiredate,sal from emp LIMIT ?,?";
View Code

  这里的两个问号表示的是起始点,和要查询的行数。再说明白点就是说我要从第五行开始查,那么查询得到的数据就是第五行和第六行,在这我们要得到前一个最后一条数据的编号,即用pageSize*(pageNow-1)

    在我的这个代码中,肯可能还有很多缺陷我有的注释了,忘记了怎么些,所以就没改,就是给pageNow赋值的时候有点问题,而且在下一页那里也不挖完美,毕竟是第一次做,还请见谅哦。我的下一篇解说将会好一些。下面就附加上所有代码。

      

  1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2 <%@ page import="java.sql.*" %>
  3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4 <html>
  5   <head>
  6     <title>My JSP 'index.jsp' starting page</title>
  7     <meta http-equiv="pragma" content="no-cache">
  8     <meta http-equiv="cache-control" content="no-cache">
  9     <meta http-equiv="expires" content="0">    
 10     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 11     <meta http-equiv="description" content="This is my page">
 12     <!--
 13     <link rel="stylesheet" type="text/css" href="styles.css">
 14     -->
 15   </head>
 16   <%
 17         request.setCharacterEncoding("utf-8");
 18   %>
 19   
 20   <%!
 21           public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
 22           public static final String DBURL="jdbc:mysql://localhost:3306/mldn";
 23           public static final String DBUSER="root";
 24           public static final String password="mysqladmin";
 25           
 26    %>
 27           <% 
 28           Connection conn=null;
 29           PreparedStatement pstmt=null;
 30           ResultSet rs = null;
 31           %>
 32           
 33           <% 
 34           try{
 35           Class.forName(DBDRIVER);
 36           conn=DriverManager.getConnection(DBURL,DBUSER,password);
 37         System.out.print(conn);
 38           }catch(Exception e){
 39           }
 40           
 41       %>
 42  <body>
 43  <center>
 44   <h1>员工信息</h1>
 45   
 46  <% 
 47   int pageSize=2;//每页显示多少条记录
 48   int pageNow=1;//希望显示第几页,默认是第一页
 49   int pageCount=0;//一共有多少页,从数据库获取值
 50   int rowCount=0;//数据库一共有多少条记录,以便算页数
 51   
 52   String pageNow1=request.getParameter("pageNow");//接受用户希望显示的页数
 53   if(pageNow1!=null)
 54   {
 55       pageNow=Integer.parseInt(pageNow1);//这里转化位整型
 56  }
 57  
 58  // pageNow==null?1:Integer.parseInt(pageNow1);
 59 
 60   if(conn!=null)
 61   {
 62   String sql="select count(*) from emp";
 63 
 64   System.out.println(conn);
 65  
 66 
 67   pstmt=conn.prepareStatement(sql);
 68   rs=pstmt.executeQuery();
 69   }
 70   if(rs!=null){
 71   while(rs.next())
 72   {
 73           rowCount=rs.getInt(1);//获取一共有多少行数据
 74   }
 75   }
 76   //计算总共有多少页
 77   if(rowCount/pageSize==0)
 78   {
 79       pageCount=rowCount/pageSize;
 80   }
 81   else
 82   {
 83       pageCount =rowCount/pageSize+1;
 84   }
 85   
 86   if(conn!=null){
 87   
 88       String sql ="select empno,ename,job,hiredate,sal from emp LIMIT ?,?";
 89  
 90  //这里自己要调试下
 91    pstmt=conn.prepareStatement(sql);
 92    pstmt.setInt(1,pageSize*(pageNow-1));
 93    pstmt.setInt(2,pageSize);
 94    rs=pstmt.executeQuery();
 95  }
 96  %>
 97  
 98 
 99  <table border="1">
100       <tr>
101              <td>员工ID</td>
102              <td>员工姓名</td>
103              <td>员工工作</td>
104              <td>员工日期</td>
105              <td>员工薪水</td>
106        </tr>
107        
108  
109  <% 
110  if(rs!=null){
111      while(rs.next())
112 { 
113  %>
114         <tr>
115                 <td><%=rs.getInt(1)%></td>
116                 <td><%=rs.getString(2)%></td>
117                 <td><%=rs.getString(3)%></td>
118                 <td><%=rs.getDate(4)%></td>
119                 <td><%=rs.getFloat(5)%></td>
120         </tr> 
121 <%
122 }
123 }
124 %>
125          
126 <%
127          try{
128          rs.close();
129          pstmt.close();
130          conn.close(); 
131          }catch(Exception e){}
132 %>
133 
134   </table>
135   <% 
136   if(pageNow!=1)
137   {
138           out.println("<a href=index.jsp?pageNow="+(pageNow-1)+">上一页</a>");
139   }
140   
141   for(int i=1;i<=pageCount;i++)
142   {
143           out.println("<a href=index.jsp?pageNow="+(pageNow+1)+">下一页</a>");
144   }
145   %>
146   </center>
147 </body>
148 </html>
View Code

    代码是在myeclie上运行的,哎,耗费了我好几天的时间,附加上图片,我自己觉得那个好难看呢,if语句那里的问题。

      继续努力吧。。。以后会记录的更多。。。

   这里主要是按照我自己的想法说明的,有不足请见谅。。。。。

原文地址:https://www.cnblogs.com/wuhao1991/p/3407659.html