jsp分页

分页功能没有想新手想象中的麻烦,反而非常简单。不用改动数据库,只是jsp页面中定义4个变量和改变sql的查询语句。

4个变量:

pageSize 每页显示记录的数目

//pageSize的值

为自己定义一个常量

pageNow 当前显示的页面数

//pageNow的值

默认为1,

 

//接受用户希望显示的页数(pageNow)
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
pageNow=Integer.parseInt(s_pageNow);
}

 

pageCount 总共页数

//计算pageCount
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}

rowCount 记录总数

//获取rowCount值

 select count(*) from branch

sql查询语句为:

"select * from branch limit "+pageSize*(pageNow-1)+","+pageSize

其中branch为表名,limit用于返回查询数据返回的前几条或中间几条,如:

SELECT * FROM branch LIMIT 2,10

表示查询branch中从第3记录到第12记录。

2表示开始位置,初始为0,所以2表示第3条记录。

10表示查询数目,即分页查询中每页显示记录的数目。

 

代码:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>分页测试</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
分页测试 <br>
<h1>用户信息列表</h1>
<%
//定义四个分页会用到的变量
int pageSize=2;//每页显示的记录数目
int pageNow=1;//显示的页数,默认显示第一页
int rowCount=0;//一共有多少条记录,该值从数据库中查询
int pageCount=0;//一共有多少页,该值是通过pageSize和rowCount
//接受用户希望显示的页数(pageNow)
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
//接收到了pageNow
pageNow=Integer.parseInt(s_pageNow);
}
//查询得到rowCount
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Success loading Mysql Driver!!");
}catch(Exception e){
System.out.print("Error loading Myswql Driver!!!!!!");
e.printStackTrace();
}
try{
Connection ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1");
System.out.println("Success Connection!!!");
Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select count(*) from branch");

if(rs.next()){
rowCount=rs.getInt(1);
}
//计算pageCount
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
//查询出需要显示的记录
rs=sm.executeQuery(
"select * from branch limit "+pageSize*(pageNow-1)+","+pageSize);
%>
<!-- 显示 -->

<table border="1">
<tr><td>用户ID</td><td>用户名字</td><td>密码</td><td>电邮</td><td>级别</td></tr>
<%
while(rs.next()){
%>

<tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getString(5)%></td></tr>
<%}%>
</table>
<%
//上一页
if(pageNow!=1){
out.println("<a href=branch.jsp?pageNow="+(pageNow-1)+">上一页</a>");
}
//显示超链接
for(int i=1;i<=pageCount;i++){
out.println("<a href=branch.jsp?pageNow="+i+">["+i+"]</a>");
}
//下一页
if(pageNow!=pageCount){
out.println("<a href=branch.jsp?pageNow="+(pageNow+1)+">下一页</a>");
}
}catch(Exception e){
System.out.println("Error Connection");
e.printStackTrace();
}
%>
</body>
</html>

 

效果图:

jsp分页,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。