servlet+mysql 分页 模拟 google分页

来源:互联网 发布:奇异矩阵 编辑:程序博客网 时间:2024/05/18 01:23
 

public void doGet(HttpServletRequest req, HttpServletResponse res){
   
   PreparedStatement ps = null;
   ResultSet rs = null;

  try{
   res.setContentType("text/html;charset=gbk");
   PrintWriter pw = res.getWriter();
   HttpSession hs = req.getSession(true);
   String name = (String)hs.getAttribute("name");
   if(name == null){
    res.sendRedirect("login");
   }
   pw.println("登陆成功"+name);
   
   Class.forName("org.gjt.mm.mysql.Driver");
   Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
   
   //分页
   int pagerow = 3;
   int nowpage = 1;
   int pagelist = 0;
   int pagecount = 0;
   ps = conn.prepareStatement("select count(*) from data");
   rs = ps.executeQuery();
   
   if(rs.next()){
    pagelist = rs.getInt(1);
    
    if(pagelist%pagerow == 0){
     pagecount = pagelist/pagerow;
    }else{
     pagecount = pagelist/pagerow+1;
    }  
   }
   
   if(req.getParameter("spagecount") != null){
    
    nowpage = Integer.parseInt(req.getParameter("spagecount"));
    //System.out.println(req.getParameter("spagecount"));
   }
   
  
   
   
   
   //显示列表
   Statement st = conn.createStatement();
   rs = st.executeQuery("select * from data limit "+(nowpage-1)*pagerow+","+pagerow);
   
   pw.println("<table border=1 style='margin:0 auto 0 auto;width:350px'>");
   while(rs.next()){
    pw.println("<tr>");
    pw.println("<td>"+rs.getInt(1)+"</td>");
    pw.println("<td>"+rs.getString(2)+"</td>");
    pw.println("<td>"+rs.getInt(4)+"</td>");
    pw.println("</tr>");
   }
   pw.println("</table>");
   
   
   //分页开始
   pw.println("<div style='text-align:center'>");
   //显示上一页
   if(nowpage>1)
    pw.println("<a href='?spagecount="+(nowpage-1)+"'>上一页</a>");
   
   if(nowpage>6){
     pw.println("<a href='?spagecount="+1+"'>...1...</a>");
   } 
    
   
   //页码显示
   int j = 0; 
   if(nowpage>5 ){
     j = nowpage-5;
   }
   
   if(pagecount-nowpage<5){
    j = pagecount-10;
   } 
   for(int i = 1+j; i<=10+j; i++){
    pw.println("<a href='?spagecount="+i+"'>"+i+"</a>");
   }
   
   if(pagecount-nowpage > 5){
     pw.println("<a href='?spagecount="+pagecount+"'>..."+pagecount+"...</a>");
   } 
   
   
   //显示下一页
   if(nowpage<pagecount)
    pw.println("<a href='?spagecount="+(nowpage+1)+"'>下一页</a>");
   
   pw.println("</div>");
 
  }catch(Exception e){
   e.printStackTrace();
  }
  
  
  
 }