• 分页技术


    Code:
    1. package com.tsinghua;  
    2. import javax.servlet.http.*;  
    3. import java.io.*;  
    4. import java.sql.*;  
    5.   
    6.   
    7. public class Wel extends HttpServlet{  
    8.   
    9.     //处理get请求  
    10.     //req:用于获得客户端(浏览器)的信息  
    11.     //res:用于向客户端(浏览器)返回信息  
    12.     public void doGet(HttpServletRequest req,HttpServletResponse res){  
    13.           
    14.         Connection ct=null;  
    15.         PreparedStatement ps=null;  
    16.         ResultSet rs=null;  
    17.         //中文乱码  
    18.         res.setContentType("text/html;charset=gbk");   
    19.         PrintWriter pw=null;  
    20.               
    21.         try{  
    22.             pw=res.getWriter();  
    23.             pw.println("<body><center>");  
    24.             //得到session  
    25.             HttpSession hs=req.getSession(true);  
    26.             String myName=(String)hs.getAttribute("pass");  
    27.             //判断  
    28.           
    29.             if(myName==null){  
    30.                 //非法登录,返回登录界面  
    31.                 res.sendRedirect("login");    
    32.                 return ;  
    33.             }     
    34.       
    35.             //===========分页的功能================  
    36.             int pageSize=3;//一页显示几条记录  
    37.             int pageNow=1;//希望显示第几页  
    38.             int rowCount=0;//共有几条记录  
    39.             int pageCount=0;//共有几页(计算出来的)  
    40.               
    41.             //动态的接受pageNow  
    42.             String sPageNow=req.getParameter("pageNow");  
    43.             if(sPageNow!=null){  
    44.                 pageNow=Integer.parseInt(sPageNow);  
    45.             }  
    46.               
    47.             //得到rowCount  
    48.             //连接数据库  
    49.             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  
    50.             //得到链接(数据库的url)  
    51.             ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=spdb","sa","sa");  
    52.             //创建一个Statement  
    53.             ps=ct.prepareStatement("select count(*) from users");  
    54.             rs=ps.executeQuery();  
    55.           
    56.             if(rs.next()){  
    57.                 rowCount=rs.getInt(1);  
    58.             }  
    59.               
    60.             //计算pageCount  
    61.             if(rowCount%pageSize==0){  
    62.                 pageCount=rowCount/pageSize;  
    63.             }else{  
    64.                 pageCount=rowCount/pageSize+1;  
    65.             }  
    66.               
    67.             ps=ct.prepareStatement("select top "+pageSize+" * from users where userId not in(select top "+pageSize*(pageNow-1)+" userId from users)");  
    68.               
    69.             rs=ps.executeQuery();  
    70.             //显示结果集  
    71.           
    72.             pw.println("<table border=1>");  
    73.             pw.println("<tr><th>id</th><th>username</th><th>password</th><th>email</th><th>grade</th></tr>");  
    74.             while(rs.next()){  
    75.                 pw.println("<tr>");  
    76.                 pw.println("<td>"+rs.getInt(1)+"</td>");  
    77.                 pw.println("<td>"+rs.getString(2)+"</td>");  
    78.                 pw.println("<td>"+rs.getString(3)+"</td>");  
    79.                 pw.println("<td>"+rs.getString(4)+"</td>");  
    80.                 pw.println("<td>"+rs.getInt(5)+"</td>");  
    81.                 pw.println("</tr>");  
    82.             }  
    83.             pw.println("</table>");  
    84.               
    85.             //显示超链接  
    86.             if(pageNow>1){  
    87.                 pw.println("<a href=wel?pageNow="+1+">首页</a>");  
    88.                 pw.println("<a href=wel?pageNow="+(pageNow-1)+">上一页</a>");  
    89.             }  
    90.               
    91.             for(int i=pageNow;i<=pageNow+4;i++){  
    92.                       
    93.                 pw.println("<a href=wel?pageNow="+i+">"+i+"</a>");  
    94.                 if(i>pageCount)  
    95.                     break;  
    96.             }  
    97.               
    98.             if(pageNow<pageCount){  
    99.                 pw.println("<a href=wel?pageNow="+(pageNow+1)+">下一页</a>");  
    100.                 pw.println("<a href=wel?pageNow="+pageCount+">末页</a>");  
    101.             }  
    102.             pw.println("</center></body>");  
    103.         }catch(Exception e){  
    104.             e.printStackTrace();  
    105.         } 
    106.     }  
    107.     //处理Post请求  
    108.     public void doPost(HttpServletRequest req,HttpServletResponse res){  
    109.           
    110.         this.doGet(req,res);  
    111.     }  
    112.       
    113.       
    114. }  

     最近在学习用Servlet做网页,这是刚刚学会的分页算法,与大家共享。


    ps:我的新博客地址:http://www.xinghaixu.com

  • 相关阅读:
    33. Search in Rotated Sorted Array
    文章
    导航
    页眉和页脚
    渐变
    图像翻转与子画面
    背景图像定位
    背景图像
    使用css将图像居中
    使用CSS将图像对齐
  • 原文地址:https://www.cnblogs.com/xcxinghai/p/3283918.html
Copyright © 2020-2023  润新知