zoukankan      html  css  js  c++  java
  • 第一次做的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语句那里的问题。

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

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

  • 相关阅读:
    nodejs 提示‘xxx’ 不是内部或外部命令解决方法
    nodejs安装express不是内部或外部命令
    菜鸟供应链升级实践
    数据治理框架解读分析
    Canal+Kafka实现MySQL与Redis数据同步
    一条 SQL 引发的事故,同事直接被开除!!
    我用几行 Python 自动化脚本完美解决掉了小姐姐的微信焦虑感
    从 Storm 迁移到 Flink,美团外卖实时数仓建设实践
    供应链管理学习心得
    解密京东智慧供应链
  • 原文地址:https://www.cnblogs.com/wuhao1991/p/3407659.html
Copyright © 2011-2022 走看看