一、根据以下四个变量定义算法
int rowCount: 一共有多少条记录
int pageSize:每页显示多少条记录
int pageCount: 一共多少页
int pageNow: 希望显示第几页
二、根据数据库的查询语句每次select出固定的记录显示在一页中
select top pageSize 字段名列表 from 表名 where id not in(select top pageSize*(pageNow-1) id from 表名)
三、在Wel.java中增加分页功能
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Wel extends HttpServlet{
public Wel() {
}
//处理get请求
public void doGet(HttpServletRequest req, HttpServletResponse res)
{
Connection ct = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
//解决中文乱码
res.setContentType("text/html;charset=GB2312");
PrintWriter pw = res.getWriter();
//欢迎界面
pw.println("");
pw.println("");
pw.println("
欢迎你的到来
");
//================分页功能==================
int rowCount =0 ; //共有几条记录
int pageSize=3;//一页显示几条记录
int pageCount=0;//共有几页
int pageNow = 1;//希望显示第几页
//动态接收pageNow,判断用户要查看哪一页
String sPageNow = req.getParameter("pageNow");
if (sPageNow != null)
pageNow = Integer.parseInt(sPageNow);
//加载驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//得到链接
ct = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=crm","sa","");
ps= ct.prepareStatement("select count(*) from userid");
rs = ps.executeQuery();
if(rs.next())
{
rowCount = rs.getInt(1); //得到rowCount
}
//计算pageCount
if(rowCount%pageSize==0)
{
pageCount = rowCount%pageSize;
}
else
{
pageCount = rowCount%pageSize+1;
}
//按每页的数量从数据库查询数据
ps= ct.prepareStatement("select top "+pageSize+" * from users where id not in(select top "+pageSize*(pageNow-1)+" id from users)");
rs = ps.executeQuery();
pw.println("
");
pw.println("用户ID | 名字 | 密码 | 邮件 | 地址 |
");
if(rs.next())
{
pw.println("");
pw.println(""+rs.getInt(1)+" | ");
pw.println(""+rs.getString(2)+" | ");
pw.println(""+rs.getString(3)+" | ");
pw.println(""+rs.getString(4)+" | ");
pw.println(""+rs.getString(5)+" | ");
pw.println("
");
}
pw.println("
");
//显示分页的页码,如果用户点击分页码,就把该值传给wel,显示相应内容
for(int i=1;i<=pageCount;i++)
{
pw.println("
"+i+"");
}
pw.println("");
pw.println("");
}
catch(Exception e)
{
e.printStackTrace();
}
}
//处理post请求
public void doPost(HttpServletRequest req, HttpServletResponse res)
{
this.doGet(req,res);
}
}
阅读(1880) | 评论(1) | 转发(0) |