真分页(使用分页语句):
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<html>
<head><title>分页操作</title>
<style type="text/css">
<!--
.STYLE6 {font-size: 12px}
.STYLE10 {font-size: 14px; font-weight: bold; }
-->
</style>
</head>
<script language="javascript">
function changeColor(obj,color){
obj.bgColor = color ;
}
</script>
<body>
<%!
public static final String URL = "emp_list_true.jsp" ;
%>
<%! //全局变量
public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true" ;
public static final String DBUSER = "root" ;
public static final String DBPASSWORD = "123456" ;
%>
<%
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
%>
<%
int currentPage = 1 ; // 为当前所在的页,默认在第1页
int lineSize = 3 ; // 每次显示的记录数
int allRecorders = 0 ; // 表示全部的记录数
int pageSize = 1 ; // 表示全部的页数(尾页)
int lsData[] = {1,3,5,7,9,10,15,20,25,30,50,100} ;
%>
<%
try{
currentPage = Integer.parseInt(request.getParameter("cp")) ;
} catch(Exception e) {}
try{
lineSize = Integer.parseInt(request.getParameter("ls")) ;
} catch(Exception e) {}
%>
<%
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
String sql = "SELECT COUNT(empno) FROM emp" ;
pstmt = conn.prepareStatement(sql) ;
rs = pstmt.executeQuery() ;
if(rs.next()){ // 取得全部的记录数
allRecorders = rs.getInt(1) ;
}
%>
<center>
<h1>雇员列表</h1>
<script language="javascript">
function go(num){
document.getElementById("cp").value = num ;
document.spform.submit() ; // 表单提交
}
</script>
<% //总页数计算
pageSize = (allRecorders + lineSize -1) / lineSize ;
%>
<% //分页查询语句
sql =" SELECT empno,ename,job,hiredate,sal,comm " +
" FROM emp ORDER BY empno limit ?,?" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,(currentPage-1) * lineSize) ;
pstmt.setInt(2,lineSize) ;
rs = pstmt.executeQuery() ;
%>
<form name="spform" action="<%=URL%>" method="post">
<input type=