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语句那里的问题。

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

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

  • 相关阅读:
    python模块—socket
    mac os系统的快捷键
    教你如何将UIImageView视图中的图片变成圆角
    关于ASP.NET MVC
    iOS 日期格式的转换
    将App通过XCode上传到AppStore 出现这个错误“An error occurred uploading to the iTunes Store”的解决方法
    关于MAC OS下面两个软件的功能改进——Dictionary和Fit 输入法
    分享一下上个星期的香港行程
    【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
    解决Entity Framework Code First 的问题——Model compatibility cannot be checked because the database does not contain model metadata
  • 原文地址:https://www.cnblogs.com/wuhao1991/p/3407659.html
Copyright © 2011-2022 走看看