下面是pages.jsp的完整原代码:
<%@page contentType="text/html; charset=GB2312" %>
<%@page import="java.sql.*" %>
<%@page language="java" %>
<%@include file="PagesCount.jsp" %>//这个jsp文件是计算总页数的(PageCount)
<HTML>
<HEAD>
<TITLE>分页显示</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONT SIZE = 5 COLOR = blue>分页显示</FONT>
</CENTER>
<BR>
<HR>
<BR>
<CENTER>
<%!
String ToPage = request.getParameter("ToPage");
%>
<%
if(ToPage != null) //判断是否可正确取得ToPage参数
{
ShowPage = Integer.parseInt(ToPage); //取得指定显示的分页页数
if(ShowPage > PageCount) //下面的if语句将判断用户输入的页数是否正确
{
ShowPage = PageCount; //判断指定页数是否大于总页数, 是则设置显示最后一页
}
else if(ShowPage <= 0)
{
ShowPage = 1; //若指定页数小于0, 则设置显示第一页的记录
}
}
rs.absolute((ShowPage - 1) * PageSize + 1); //计算欲显示页的第一笔记录位置
%>
<H3>当前在第<FONT SIZE = 4 COLOR = red>
<%= ShowPage %></FONT>页, 共
<FONT SIZE = 4 COLOR = red>
<%= PageCount %></FONT>页</H3>
<BR>
<FORM action=Pages.jsp method=POST>
到
<INPUT type="text" name=ToPage style="HEIGHT: 25px; WIDTH: 40px"
value=<%= ShowPage%> > 页
</FORM>
<%
//利用For循环配合PageSize属性输出一页中的记录
for(int i = 1; i <= PageSize; i++)
{
%>
<TABLE border=1 bordercolor=RoyalBlue bgcolor=LightBlue>
<TR><TD bgcolor=LightYellow width= 100>
<B>书籍编号</B></TD>
<TD width= 100><B><%= rs.getString("BookID") %>
</B></TD>
<TD bgcolor=LightYellow width= 100>
<B>出版日期</B></TD>
<TD width= 100><B><%= rs.getDate("PDate") %>
</B></TD>
<TD bgcolor=LightYellow width= 100>
<B>总页数</B></TD>
<TD width= 100><B><%= rs.getString("Pages") %>
</B></TD>
<TD bgcolor=LightYellow width= 100>
<B>价 格</B></TD>
<TD width= 100><B><FONT SIZE = 4 COLOR = red><B>
<%= rs.getInt("Price") %>
</B></FONT></TD>
</TR>
<TR>
<TD bgcolor=LightYellow ><B>书籍名称</B></TD>
<TD Colspan=5 width=500><B><%= rs.getString("Title") %>
</B></TD>
</>
<TD bgcolor=LightYellow ><B>作 者</B></TD><TD width= 100>
<B><%= rs.getString("Author") %></B></TD>
</TR>
<TR><TD bgcolor=LightYellow ><B>备 注</B></TD>
<TD COLSPAN = 7 width= 700>
<B><%= rs.getString("BookMemo") %></B></TD>
</TR>
</TABLE><BR>
<%
//下面的if判断语句用于防止输出最后一页记录时,
//将记录指标移至最后一笔记录之后
if(!rs.next()) //判断是否到达最后一笔记录
break; //跳出for循环
}
%>
<TABLE>
<TR valign=baseline align=center>
<%
//判断目前所在分页是否为第一页,
//不是则显示到第一页与上一页的超链接
if(ShowPage != 1)
{
//下面建立的各超链接将链接至自己,
//并将欲显示的分页以ToPage参数传递给自己
%>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= 1 %>>到第一页</A>
</TD>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= ShowPage - 1 %>>到上一页</A>
</TD>
<%
}
//判断目前所在分页是否为最后一页,
//不是则显示到最后一页与下一页的超链接
if(ShowPage != PageCount)
{
//下面建立的各超链接将链接至自己,
//并将欲显示的分页以ToPage参数传递自己
%>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= ShowPage + 1%>>到下一页</A>
</TD>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= PageCount %>>到最后一页</A>
</TD>
<%
}
%>
<TD Width=150>
</TD></TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
================================================================
上面用到的pagescount.jsp代码:
<%!
int PageSize = 3; //设置每张网页显示两笔记录
int ShowPage = 1; //设置欲显示的页数
int RowCount = 0; //ResultSet的记录笔数
int PageCount = 0; //ResultSet分页后的总页数
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
public void jspInit() //执行数据库与相关数据的初始化
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//载入驱动程序类别
con = DriverManager.getConnection("jdbc:odbc:BookDB"); //建立数据库链接
//建立Statement对象, 并设置记录指标类型为可前后移动
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("SELECT * FROM Book"); //建立ResultSet(结果集)对象,并执行SQL语句
rs.last(); //将指标移至最后一笔记录
RowCount = rs.getRow(); //取得ResultSet中记录的笔数
//计算显示的页数
PageCount = ((RowCount % PageSize) == 0 ?
(RowCount/PageSize) : (RowCount/PageSize)+1);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
public void jspDestroy() //执行关闭各种对象的操作
{
try{
rs.close(); //关闭ResultSet对象
stmt.close(); //关闭Statement对象
con.close(); //关闭数据库链接对象
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
%>
<%@page contentType="text/html; charset=GB2312" %>
<%@page import="java.sql.*" %>
<%@page language="java" %>
<%@include file="PagesCount.jsp" %>//这个jsp文件是计算总页数的(PageCount)
<HTML>
<HEAD>
<TITLE>分页显示</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONT SIZE = 5 COLOR = blue>分页显示</FONT>
</CENTER>
<BR>
<HR>
<BR>
<CENTER>
<%!
String ToPage = request.getParameter("ToPage");
%>
<%
if(ToPage != null) //判断是否可正确取得ToPage参数
{
ShowPage = Integer.parseInt(ToPage); //取得指定显示的分页页数
if(ShowPage > PageCount) //下面的if语句将判断用户输入的页数是否正确
{
ShowPage = PageCount; //判断指定页数是否大于总页数, 是则设置显示最后一页
}
else if(ShowPage <= 0)
{
ShowPage = 1; //若指定页数小于0, 则设置显示第一页的记录
}
}
rs.absolute((ShowPage - 1) * PageSize + 1); //计算欲显示页的第一笔记录位置
%>
<H3>当前在第<FONT SIZE = 4 COLOR = red>
<%= ShowPage %></FONT>页, 共
<FONT SIZE = 4 COLOR = red>
<%= PageCount %></FONT>页</H3>
<BR>
<FORM action=Pages.jsp method=POST>
到
<INPUT type="text" name=ToPage style="HEIGHT: 25px; WIDTH: 40px"
value=<%= ShowPage%> > 页
</FORM>
<%
//利用For循环配合PageSize属性输出一页中的记录
for(int i = 1; i <= PageSize; i++)
{
%>
<TABLE border=1 bordercolor=RoyalBlue bgcolor=LightBlue>
<TR><TD bgcolor=LightYellow width= 100>
<B>书籍编号</B></TD>
<TD width= 100><B><%= rs.getString("BookID") %>
</B></TD>
<TD bgcolor=LightYellow width= 100>
<B>出版日期</B></TD>
<TD width= 100><B><%= rs.getDate("PDate") %>
</B></TD>
<TD bgcolor=LightYellow width= 100>
<B>总页数</B></TD>
<TD width= 100><B><%= rs.getString("Pages") %>
</B></TD>
<TD bgcolor=LightYellow width= 100>
<B>价 格</B></TD>
<TD width= 100><B><FONT SIZE = 4 COLOR = red><B>
<%= rs.getInt("Price") %>
</B></FONT></TD>
</TR>
<TR>
<TD bgcolor=LightYellow ><B>书籍名称</B></TD>
<TD Colspan=5 width=500><B><%= rs.getString("Title") %>
</B></TD>
</>
<TD bgcolor=LightYellow ><B>作 者</B></TD><TD width= 100>
<B><%= rs.getString("Author") %></B></TD>
</TR>
<TR><TD bgcolor=LightYellow ><B>备 注</B></TD>
<TD COLSPAN = 7 width= 700>
<B><%= rs.getString("BookMemo") %></B></TD>
</TR>
</TABLE><BR>
<%
//下面的if判断语句用于防止输出最后一页记录时,
//将记录指标移至最后一笔记录之后
if(!rs.next()) //判断是否到达最后一笔记录
break; //跳出for循环
}
%>
<TABLE>
<TR valign=baseline align=center>
<%
//判断目前所在分页是否为第一页,
//不是则显示到第一页与上一页的超链接
if(ShowPage != 1)
{
//下面建立的各超链接将链接至自己,
//并将欲显示的分页以ToPage参数传递给自己
%>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= 1 %>>到第一页</A>
</TD>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= ShowPage - 1 %>>到上一页</A>
</TD>
<%
}
//判断目前所在分页是否为最后一页,
//不是则显示到最后一页与下一页的超链接
if(ShowPage != PageCount)
{
//下面建立的各超链接将链接至自己,
//并将欲显示的分页以ToPage参数传递自己
%>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= ShowPage + 1%>>到下一页</A>
</TD>
<TD Width=150>
<A Href=Pages.jsp?ToPage=<%= PageCount %>>到最后一页</A>
</TD>
<%
}
%>
<TD Width=150>
</TD></TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
================================================================
上面用到的pagescount.jsp代码:
<%!
int PageSize = 3; //设置每张网页显示两笔记录
int ShowPage = 1; //设置欲显示的页数
int RowCount = 0; //ResultSet的记录笔数
int PageCount = 0; //ResultSet分页后的总页数
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
public void jspInit() //执行数据库与相关数据的初始化
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//载入驱动程序类别
con = DriverManager.getConnection("jdbc:odbc:BookDB"); //建立数据库链接
//建立Statement对象, 并设置记录指标类型为可前后移动
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("SELECT * FROM Book"); //建立ResultSet(结果集)对象,并执行SQL语句
rs.last(); //将指标移至最后一笔记录
RowCount = rs.getRow(); //取得ResultSet中记录的笔数
//计算显示的页数
PageCount = ((RowCount % PageSize) == 0 ?
(RowCount/PageSize) : (RowCount/PageSize)+1);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
public void jspDestroy() //执行关闭各种对象的操作
{
try{
rs.close(); //关闭ResultSet对象
stmt.close(); //关闭Statement对象
con.close(); //关闭数据库链接对象
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
%>
解决方案 »
- 通过url传递参数的请求如何处理异常
- HibernateTemplate中有事务管理吗?
- 谁有jena?
- hibernate如何知道数据库是否已经启动
- spring+hibernate分页
- 再次发帖,求问jsp的form表单如何向action传递二维数组啊!!跪求各位大神支招!
- Struts 上传问题 (急) (在线等)
- Tomcat不认Classes12.zip怎么回事
- 求救,关于schema的问题
- myeclispe连接数据库异常
- 简单问题,送分啦。
- 请高手指点!1、Tomcat5.0配置数据库连接池的问题,initCtx.lookup("java:comp/env");这个参数是什么意思?2、为什么还要把驱动考到Tomca
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)这个错误说明什么呢???