jsp分页

<%!
    int pataSize=5;// 每页多少数据
    int totalCount =0; //数据共多少
    int pageCount = 0; ///数据共有多少页
    int index=1; //index开始

  
    void getCount(int count)   //放入的一共的数据 totalCount 
   {
   pageCount = (totalCount%pataSize==0)?(totalCount/pataSize):(totalCount/pataSize+1);    //三元表达,判断有数据一共多少页
   };
  
   %>
   <% 
   if(request.getParameter("index")!=null)   //传过来的index判断是不是空
   {
   index=Integer.parseInt(request.getParameter("index"));  //获取index
   }
   if(index>=1){    // 大于1的index
  index=index-1;
   }else
{
  index=0;    // 首页
}
  if(index<=13)  //小于13的index
  {
  index=index+1;
  }else
  {
  index=14;   //尾页
  }
   
   Context ctx = new InitialContext();   //连接池
   DataSource ds =(DataSource) ctx.lookup("java:comp/env
bc/news");
   Connection con =ds.getConnection();
   PreparedStatement ps =con.prepareStatement("SELECT count(1) FROM news");    //看看一共有多少数据
   ResultSet rs = ps.executeQuery();    //遍历出来
   if(rs.next())      //开始判断下一个有没有
   {
   totalCount=rs.getInt("count(1)");
   }
    PreparedStatement pss =con.prepareStatement("SELECT `ntitle` FROM news LIMIT ?,?");   //sql语句
    pss.setInt(1,(index-1)*pataSize);               //传入数据
    pss.setInt(2, pataSize);                //传入数据
   rs = pss.executeQuery();
   while(rs.next())          //遍历出来
   {
   out.print(rs.getString(1)+"<br>");
   }
   getCount(totalCount);    //放入的一共的数据 totalCount 
   for(int i =0;i<pageCount;i++)  //遍历循环这个页数
   {
   %>
   <a href='index.jsp?index=<%=(i+1)%>'><%out.print((i+1)); %></a>
   <%
   }
   %>
   <br><a href='index.jsp?index=<%=1%>'><%out.print("首页"); %></a>    //index 为1的时候是首页
  <a href='index.jsp?index=<%=index-1%>'><%out.print("上一页"); %></a>  //index 为-1的时候是上一页
  <a href='index.jsp?index=<%=index+1%>'><%out.print("下一页"); %></a>  //index 为+1的时候是下一页
  <a href='index.jsp?index=<%=14%>'><%out.print("尾页"); %></a>      //index 为14的时候是尾页
   <%

//关闭数据库
    try{
    rs.close();
    }catch(SQLException s){
    s.printStackTrace();
    }
    try{
    ps.close();
    }catch(SQLException s){
    s.printStackTrace();
    }
    try{
    con.close();
    }catch(SQLException s){
    s.printStackTrace();
    }
    %>

转载于:https://www.cnblogs.com/lz178/p/8270644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值