jsp分页显示的实现代码
在最近几天制作JSP留言板的过程中,遇到了一个问题。先看看截图吧:这是一张随机在新闻页面中的图片。如果消息的数量太大,整个页面必须安排长和长,这直接导致用户麻烦和不舒服的感觉。因此,为了解决这个问题,我们通常使用分页显示。
该页显示模式的设计是这样一种方式,通常需要使用这些基本变量:PageSize(显示每页多少条记录)和总页数(总页数),ShowPage(显示网页),RecordCount(记录),为了便于理解,画一个图:
如果你想要显示的页面效果,大小= 4,总页面数= 3,= 1 = 12 RecordCount ShowPage,这张图片。这个想法是,如果我们要显示的页面,首先要计算出每一页的第一条记录。在每一页的第一个记录的总记录的位置记录,然后位置=(ShowPage - 1)×PageSize + 1.for例子,上面的例子,如果你想显示的第一页,计算第一页的第一条记录在记录的第一条记录;如果你想显示页第二,计算第一记录第二页共第四记录的记录;如果你想显示第三页,然后,计算的第一页的第一个记录第九记录总记录。
JSP中的核心代码如下(所使用的数据库是mysql):
复制代码代码如下所示:
int PageSize = 4 <;
int总页数;
int ShowPage;
%>
<
连接;
语句的SQL;
连接数据库;
尝试{ Class.forName(COM。MySQL JDBC驱动程序。。);
} catch(ClassNotFoundException e){
}
尝试{ CON = drivermanager.getconnection(JDBC:MySQL: / /本地:3306 /留言板
SQL = con.createstatement(resultset.type_scroll_sensitive,结果集。concur_read_only);
返回滚动结果集
RS = sql.executequery(SELECT * FROM messageinfo );
将光标移到最后一行。
rs.last();
获取最后一行的行号
rs.getrow RecordCount = int();
分页的总和
总页数=(总记录数为0(LASTROW PageSize = =) / PageSize):(LASTROW / PageSize + 1);
用户希望访问显示页面:
字符串,整数= request.getparameter(ShowPage );
如果(整数= NULL){
整数= 1;
}
尝试{ ShowPage = integer.parseint(整数);
} catch(出现e){
ShowPage = 1;
}
如果(ShowPage <= 1){
ShowPage = 1;
}
如果(ShowPage > =总页数){
ShowPage =总页数;
}
/ /如果你想显示页面ShowPage,然后光标移到位置的值:
int的位置=(showpage-1)*为+ 1;
设置光标位置
rs.absolute(位置);
用于显示此页的循环应显示记录。
为(int i = 1;我<= PageSize;i++){
%>
发表于:
<
Rs.next();
}
Rs. Close();
Con.close();
}
捕获(异常E){
E.printStackTrace();}
%>
页(页)
首页
>
< / /根据每个网页的总页面数值和添加相应的数字链接
为(int i = 1;i < =总页数;i++){
%>
>
< }
%>
>
结尾
跳转到页面
运行结果如下(为了简化代码,页面布局相关的代码被删除,这里仅是函数):
你可以跳转到首页,最后一页,你可以手动指定数字中的页数,也可以在输入框中输入显示的页数。