本页为listtempdemo.jsp
<%@ page contentType="text/html" pageEncoding="GBK" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>欢迎进入我的网站!</title>
</head>
<body>
<%
int intPageSize = 3;//每页显示的记录数
int intRowCount = 0;//总的记录行数
int intPageCount = 0 ;//总的页数
int intPage = 0;//待显示的页数
int prevPage = 0;//上一页
int nextPage = 0;//下一页
%>
<%
if(request.getParameter("intPage") == null){
intPage = 1;
}else{
intPage = Integer.parseInt(request.getParameter("intPage"));
}
%>
<%!
public static final String DBDRIVER ="org.gjt.mm.mysql.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/TWW";
public static final String DBUSER = "root" ;
public static final String DBPASS = "mysqladmin";
%>
<%
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
try{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql = "select empno,ename,job,hiredate,sal from temp";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
%>
<center>
<table border="1" width="90%">
<tr>
<td>雇员编号</td>
<td>雇员姓名</td>
<td>雇员职位</td>
<td>雇佣日期</td>
<td>雇用工资</td>
</tr>
<%
rs.last();
intRowCount = rs.getRow();
intPageCount = (intRowCount + intPageSize -1) / intPageSize;
rs.beforeFirst();
rs.absolute((intPage-1)* intPageSize + 1);
%>
<%
for(int i=0;i<intPageSize;i++){
int empno = rs.getInt(1);
String ename = rs.getString(2);
String job = rs.getString(3);
java.util.Date date = rs.getDate(4);
float sal = rs.getFloat(5);
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=date%></td>
<td><%=sal%></td>
</tr>
<%
rs.next();
}
%>
</table>
</center>
<br><br>
<%
if(intPage==1){//如果当前显示的是第一页
nextPage = intPage + 1;
out.print("<font face=宋体 size=2>首页 </font>");
out.print("<font face=宋体 size=2>上一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + nextPage + "><font face=宋体 size=2>下一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + intPageCount + " ><font face=宋体 size=2>末页</font>");
}else if(intPage == intPageCount){//如果当前页是最后一页
prevPage = intPage - 1;
out.print("<a href=listtempdemo.jsp?intPage=1 ><font face=宋体 size=2>首页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + prevPage + " ><font face=宋体 size=2>上一页 </font>");
out.print("<font face=宋体 size=2>下一页 </font>");
out.print("<font face=宋体 size=2>末页</font>");
}else{//既不是第一页也不是最后一页
prevPage = intPage - 1;
nextPage = intPage + 1;
out.print("<a href=listtempdemo.jsp?intPage=1><font face=宋体 size=2>首页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + prevPage + " ><font face=宋体 size=2>上一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + nextPage + "><font face=宋体 size=2>下一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + intPageCount + " ><font face=宋体 size=2>末页</font>");
}
%>
<%
}catch(Exception e){
e.printStackTrace();
}finally{
rs.close();
pstmt.close();
conn.close();
}
%> </body>
</html>数据库脚本为
DROP table IF exists temp ;
create table temp(
empno INT(4) PRIMARY KEY,
ename VARCHAR(10) NOT NULL,
job VARCHAR(9) NOT NULL,
hiredate DATE ,
sal FLOAT(7,2)
);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2001,'田微微','工程师','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2002,'田微微1','工程师1','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2003,'田微微2','工程师2','2003-04-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2004,'田微微3','工程师3','2003-05-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2005,'田微微4','工程师4','2003-05-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2008,'田微微','工程师','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2009,'田微微1','工程师1','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2010,'田微微2','工程师2','2003-04-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2011,'田微微3','工程师3','2003-05-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2012,'田微微4','工程师4','2003-05-18',90000.00);
<%@ page contentType="text/html" pageEncoding="GBK" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>欢迎进入我的网站!</title>
</head>
<body>
<%
int intPageSize = 3;//每页显示的记录数
int intRowCount = 0;//总的记录行数
int intPageCount = 0 ;//总的页数
int intPage = 0;//待显示的页数
int prevPage = 0;//上一页
int nextPage = 0;//下一页
%>
<%
if(request.getParameter("intPage") == null){
intPage = 1;
}else{
intPage = Integer.parseInt(request.getParameter("intPage"));
}
%>
<%!
public static final String DBDRIVER ="org.gjt.mm.mysql.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/TWW";
public static final String DBUSER = "root" ;
public static final String DBPASS = "mysqladmin";
%>
<%
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
try{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql = "select empno,ename,job,hiredate,sal from temp";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
%>
<center>
<table border="1" width="90%">
<tr>
<td>雇员编号</td>
<td>雇员姓名</td>
<td>雇员职位</td>
<td>雇佣日期</td>
<td>雇用工资</td>
</tr>
<%
rs.last();
intRowCount = rs.getRow();
intPageCount = (intRowCount + intPageSize -1) / intPageSize;
rs.beforeFirst();
rs.absolute((intPage-1)* intPageSize + 1);
%>
<%
for(int i=0;i<intPageSize;i++){
int empno = rs.getInt(1);
String ename = rs.getString(2);
String job = rs.getString(3);
java.util.Date date = rs.getDate(4);
float sal = rs.getFloat(5);
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=date%></td>
<td><%=sal%></td>
</tr>
<%
rs.next();
}
%>
</table>
</center>
<br><br>
<%
if(intPage==1){//如果当前显示的是第一页
nextPage = intPage + 1;
out.print("<font face=宋体 size=2>首页 </font>");
out.print("<font face=宋体 size=2>上一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + nextPage + "><font face=宋体 size=2>下一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + intPageCount + " ><font face=宋体 size=2>末页</font>");
}else if(intPage == intPageCount){//如果当前页是最后一页
prevPage = intPage - 1;
out.print("<a href=listtempdemo.jsp?intPage=1 ><font face=宋体 size=2>首页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + prevPage + " ><font face=宋体 size=2>上一页 </font>");
out.print("<font face=宋体 size=2>下一页 </font>");
out.print("<font face=宋体 size=2>末页</font>");
}else{//既不是第一页也不是最后一页
prevPage = intPage - 1;
nextPage = intPage + 1;
out.print("<a href=listtempdemo.jsp?intPage=1><font face=宋体 size=2>首页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + prevPage + " ><font face=宋体 size=2>上一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + nextPage + "><font face=宋体 size=2>下一页 </font>");
out.print("<a href=listtempdemo.jsp?intPage=" + intPageCount + " ><font face=宋体 size=2>末页</font>");
}
%>
<%
}catch(Exception e){
e.printStackTrace();
}finally{
rs.close();
pstmt.close();
conn.close();
}
%> </body>
</html>数据库脚本为
DROP table IF exists temp ;
create table temp(
empno INT(4) PRIMARY KEY,
ename VARCHAR(10) NOT NULL,
job VARCHAR(9) NOT NULL,
hiredate DATE ,
sal FLOAT(7,2)
);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2001,'田微微','工程师','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2002,'田微微1','工程师1','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2003,'田微微2','工程师2','2003-04-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2004,'田微微3','工程师3','2003-05-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2005,'田微微4','工程师4','2003-05-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2008,'田微微','工程师','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2009,'田微微1','工程师1','2003-01-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2010,'田微微2','工程师2','2003-04-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2011,'田微微3','工程师3','2003-05-18',90000.00);
INSERT INTO temp (empno,ename,job,hiredate,sal) VALUES(2012,'田微微4','工程师4','2003-05-18',90000.00);
这个SQL语句没看出有体现分页的意思啊?
JSP 只负责显示,servlet负责响应啊
看看这句话
"select * from (select empno,ename,job,hiredate,sal,rownum as num from temp) where
num > x and num <=y" 我觉得这个才有点分页的意思啊
使用statementStatement pstmt = conn.createStatement(int resultSetType, int resultSetConcurrency) ResultSet rs = pstmt.executeQuery(sql)换成这句试试