JSP分页实例

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>
<html>
<head>
<title></title>
</head>
<body>
<center>
<h1>查询结果列表</h1>
<hr>
<br>
<%!
final String jspUrl="show_result.jsp";
%> <%
//定义如下分页变量
//1.定义每页要显示的页数
int lineSize = 10;
//2.定义一个当前是第几页
int currentPage = 1;
// 计算出总页数
int pageSize= 0;
// 总记录数
int allRecorders=0;
// 接收传过来的当前页,第一次打开时没有传过来的值会发生异常,因此要try{}catch{}
try{
currentPage = Integer.parseInt(request.getParameter("cp"));
}catch(Exception e){
}
final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";

final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:GAO";

final String DBUSER = "oss3";

final String DBPASSWORD = "oss3";

Connection conn = null;

%> <%

try {
Class.forName(DBDRIVER);

conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

PreparedStatement pstmt = null;

//先求出记录总数

String sql = "select count(flow_no) from oss_service";
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
if(rs .next())
{
allRecorders = Integer.parseInt(rs.getString(1));
pageSize = (allRecorders+lineSize-1)/lineSize;
}
rs.close();
pstmt.close();
sql = "select flow_id,serv_id,line_no from oss_service";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
%> <script language="javascript">
function openPage(curPage)
{
document.spage.cp.value = curPage;
document.spage.submit();
}
function selOpenPage()
{
document.spage.cp.value = document.spage.selectPage.value ;
document.spage.submit();
}
</script>

<form action="<%=jspUrl%>" name="spage" id="spage">总记录数:<%=allRecorders %> 
共有页数: <%=pageSize %> 当前页:<strong><%=currentPage %></strong> 跳转到 <select name="selectPage"
οnchange="selOpenPage()">
<%
for (int i=1;i<=pageSize;i++)
{
%>
<option value="<%=i %>" <%=currentPage==i?"selected":"" %>><%=i %></option>
<%
}
%>
</select>页 <br>
<input type="button" value="首页" οnclick="openPage(1)"
<%=currentPage==1?"disabled" :""%>>
<input type="button" value="上一页" οnclick="openPage(<%=currentPage-1 %>)"
<%=currentPage==1?"disabled" :""%>>
<input type="button" value="下一页" οnclick="openPage(<%=currentPage+1 %>)"
<%=currentPage==pageSize?"disabled" :""%>>
<input type="button" value="尾页" οnclick="openPage(<%=pageSize %>)"
<%=currentPage==pageSize?"disabled" :""%>>
<input type="hidden" value="" name="cp"></form>

<table border="1" width="80">

<tr>

<td>flow_id</td>

<td>serv_id</td>

<td>line_no</td>

<td>1</td>
<td>1</td>

</tr>

<%
int i = 0;
//对于输出代码之前要求按显示的页数空出
for (int j = 0; j < (currentPage - 1) * lineSize; j++) {
rs.next();
}
for (int j = 0; j < lineSize; j++) {
if (rs.next()) {
i++;
String flow_id = rs.getString(1);
String serv_id = rs.getString(2);
String line_no = rs.getString(3);
%>
<tr>
<td><%=flow_id%></td>
<td><%=serv_id%></td>
<td><%=line_no%></td>
<td>1</td>
<td>1</td>
</tr>
<%
}
}
rs.close();
pstmt.close();
if (i == 0) {
%>
<tr>
<td colspan="6">没有任何数据</td>
</tr>
<%
}
%>
</table>
<%
} catch (Exception e) {
%>
<h2>SQL语句有错误</h2>
<%
} finally {
conn.close();
}
%>
</center>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值