使用Servlet 对数据库数据进行分页显示:
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Datashow extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res) {
Connection con=null;
Statement sm=null;
ResultSet rs=null;
int pageSize=3;//每页显示多少记录
int pageNow=1;//当前显示第几页
int pageCount=0;//共有多少页
int rowCount=0;//共有多少条记录
//设置中文字体
res.setCharacterEncoding("GBK");
String getPageNow=req.getParameter("spageNow");
if(getPageNow!=null)
{
pageNow=Integer.parseInt(getPageNow);
}
try
{
PrintWriter pw=res.getWriter();
String username="xiaoming";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=StudentInfo","sa","1234");
sm=con.createStatement();
rs=sm.executeQuery("select count(*) from student");//查询共有多少记录
if(rs.next()) //此处说明有记录
{
rowCount=rs.getInt(1);
if(rowCount%pageSize==0)
{
pageCount=rowCount/pageSize;
}
else
{
pageCount=rowCount/pageSize+1; //int类型 会转化为整数
}
pw.println("<body><center>");
pw.println("共有记录数 :" + rowCount);
pw.println("共有页码数:" +pageCount);
//查询
rs=sm.executeQuery("select top "+pageSize+"* from student where ID not in(select top "+pageSize*(pageNow-1)+" ID from student)");
pw.println("<table border=2>");
pw.println("<tr><th>Id</th><th>Name</th><th>Genger</th><th>Age</th><th>Grade</th></tr>");
while(rs.next())
{
pw.println("<tr>");
pw.println("<td>"+rs.getInt(1)+"</td>");
pw.println("<td>"+rs.getString(2)+"</td>");
pw.println("<td>"+rs.getString(3)+"</td>");
pw.println("<td>"+rs.getString(4)+"</td>");
pw.println("<td>"+rs.getString(5)+"</td>");
pw.println("</tr>");
}
}
else
{
pw.println("NotFoundSQL");
}
pw.println("</table >");
for(int i=1;i<=pageCount;i++){
pw.println("<a href=show?spageNow="+i+">"+i+"</a>");
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try{
if(rs!=null)
{ rs.close();
}
if(sm!=null){
sm.close();
}
if(con!=null){
con.close();
}
}
catch(SQLException eexx)
{
eexx.printStackTrace();
}
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res) {
this.doGet(req,res);
}
}
web.xml文件:
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name> Welcome to TomCat</display-name>
<description>
Welcome to TomCat
</description>
<!-- Define the Manager Servlet Mapping -->
<servlet>
<!--给你的servlet取名,任意-->
<servlet-name>hello</servlet-name>
<!--指明servlet的包名+类名-->
<servlet-class>com.xuyan.Hello</servlet-class>
</servlet>
<servlet-mapping>
<!--同上方名字一样,必须-->
<servlet-name>hello</servlet-name>
<!--在浏览器中访问的名字-->
<url-pattern>/xuyan</url-pattern>
</servlet-mapping>
<servlet>
<!--给你的servlet取名,任意-->
<servlet-name>chuli</servlet-name>
<!--指明servlet的包名+类名-->
<servlet-class>com.xuyan.LoginCL</servlet-class>
</servlet>
<servlet-mapping>
<!--同上方名字一样,必须-->
<servlet-name>chuli</servlet-name>
<!--在浏览器中访问的名字-->
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<!--给你的servlet取名,任意-->
<servlet-name>welcome</servlet-name>
<!--指明servlet的包名+类名-->
<servlet-class>com.xuyan.welcome</servlet-class>
</servlet>
<servlet-mapping>
<!--同上方名字一样,必须-->
<servlet-name>welcome</servlet-name>
<!--在浏览器中访问的名字-->
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
<servlet>
<!--给你的servlet取名,任意-->
<servlet-name>data</servlet-name>
<!--指明servlet的包名+类名-->
<servlet-class>com.xuyan.Datashow</servlet-class>
</servlet>
<servlet-mapping>
<!--同上方名字一样,必须-->
<servlet-name>data</servlet-name>
<!--在浏览器中访问的名字-->
<url-pattern>/show</url-pattern>
</servlet-mapping>
</web-app>
运行结果: