很多人问过关于翻页的问题,但小弟还是想问一下 dkmilk(迪克牛奶) 误解了我的意思,我想要java代码,不是jscript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以下的代码可以实现<%@ page language="java" import="java.sql.*" %><%@ page contentType="text/html;charset=gb2312" %><%//变量声明//数据库连接对象Connection sqlCon; //Statement对象Statement sqlStmt; //记录集对象ResultSet sqlRst; //数据库连接字符串String strCon; //SQL语句String strSQL; //每页记录数int intPageSize; //记录总数int intRowCount; //总页数int intPageCount; //当前页码int intPage;//传递参数用变量 String strPage;//循环变量int i;//定义每页记录数为0intPageSize =10;//获得当前页码strPage = request.getParameter("page");//以不带页码访问时,没有参数,此时为首页if(strPage==null){ intPage = 1;}else{//转换字符串为整型 intPage = java.lang.Integer.parseInt(strPage);//对于小于的变量,设置当前页为第一页 if(intPage<1) intPage = 1;}//下面的代码为加载JDBD-ODBC驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//设置数据库连接字符串//使用js dsn连接strCon="jdbc:odbc:js";//连接数据库sqlCon = DriverManager.getConnection(strCon,"","");//创建一个记录指针可以上下移动的只读的Statement对象sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句strSQL = "select * from 论文";//执行SQL语句,获得返回集sqlRst = sqlStmt.executeQuery(strSQL);//系统记录指针对最后一行sqlRst.last();//获得总行数intRowCount = sqlRst.getRow();//计算总页数intPageCount = (intRowCount+intPageSize-1) / intPageSize;//对于大于总页数的页面,调整为最大页码if(intPage>intPageCount) intPage = intPageCount;%><html><head><meta http-equiv="Content-Language" content="zh-cn"><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"><meta name="ProgId" content="FrontPage.Editor.Document"><title>翻页程序示例</title></head><p align=center>翻页程序示例</p><body><!--在HTML中画一张表格用于显示记录--><table border="0" width="100%" cellspacing="1" cellpadding="0" height="167"> <tr> <td width="80%" height="165" valign="top"> <table border="0" cellspacing="0" cellpadding="0" width="100%" height="81"><!--定义表头---><tr> <td width="37" bgcolor="#CCFFCC" height="18">编号</td> <td width="129" bgcolor="#CCFFCC" height="18">名称</td> <td width="165" bgcolor="#CCFFCC" height="18">发表日期</td> <td width="69" bgcolor="#CCFFCC" height="18">作者</td> <td width="137" bgcolor="#CCFFCC" height="18">文件名</td></tr><%if(intPageCount>0){//移动记录指针到待显示页的第一条记录上 sqlRst.absolute((intPage-1) * intPageSize + 1);//显示当前记录 i = 0; while(i<intPageSize && !sqlRst.isAfterLast()){ %><tr bgcolor=#f2f2e6> <td width="37" height="18"><%=sqlRst.getString(1)%></td> <td width="129" height="18"><%=sqlRst.getString(2)%></td> <td width="165" height="18"><%=sqlRst.getString(3)%></td> <td width="69" height="18"><%=sqlRst.getString(4)%></td> <td width="137" height="18"><%=sqlRst.getString(5)%></td></tr> <%//移动到下一条记录 sqlRst.next(); i++; }}%></table> <table border="0" width="100%" cellspacing="0" cellpadding="0" height="52"> <tr><!--定义翻页用表单--><form action="PageView.jsp" method="GET"> <td height="52" bgcolor="#99FFCC" align="right"> <% //生成用于翻页的超链if(intPage!=1)//不是第一页,生成........ { out.println("<A HREF=PageView.jsp?page=1>第一页</A>"); out.println("<A HREF=PageView.jsp?page=" + (intPage-1) + ">上一页</A>"); }if(intPage!=intPageCount)//不是最后一页,生成........ { out.println("<A HREF=PageView.jsp?page=" + (intPage+1) + ">下一页</A>"); out.println("<A HREF=PageView.jsp?page=" + intPageCount + ">最后一页</A>"); }%> 输入页数:<input type="text" size="3" name="Page"><!--显示当前页数与总页数--> 页数:<font color="#FF0000"><%=intPage%>/<%=intPageCount%></font> </form> </tr> </table> </body> </html> <% //关闭记录集sqlRst.close(); //关闭Statement对象 sqlStmt.close(); //关闭数据库 sqlCon.close(); %> xxyangwang(K歌之王)的例子很经典啊,我在很多地方,很多书都看过,不过小弟不才,全部照搬都跑不起来,总是出错 我用的就是xxyangwang(K歌之王)的例子呀 很不错的呀~~~~~~~ 呵呵~~~~~~~慢慢改吧~~~ 我又遇到一个问题啦,用xxyangwang(K歌之王)的例子执行静态的sql语句没问题但是动态的sql语句就不行了如String tmp1=request.getParameter("search");String tmp2=request.getParameter("select");String sql1= "select 书目控制号, 题名,责任者,出版项 from bookctrl where 书目控制号!=0 and "+tmp2+" like '%"+tmp1+"%'";因为每次翻页也要获取上一页的search和select,而PageView.jsp里面没有search和select变量,所以生成的sql语句不完全,当PageView.jsp?page=2时,返回空的ResultSet 谁直接在JSP中直接连接数据库,查询数据库,说明他太嫩。 你不会做几个JAVABEAN,几个工具类,然后引入使用么。代码简洁,安全,效率高。 yanbuhan(严寒)大哥,小弟确实很菜,请把你的高招亮出来让小弟见识一下。谢谢 xxyangwang(K歌之王) 例子挺好的,不过这样写不够简洁,将来修改很困难,要想一劳永逸,好要下工夫。可以这样考虑:一个PageControl类实现分页计算一个JAVABEAN(值对象)保存查询结果,"使用"或"继承"PageControl一个xml文件保存JAVABEN的结构,如字段名称、类型、中文名称,显示的列宽度等等一个xls文件显示xml文件和javabean的数据一个XmlTransformer处理转换过程一个标签类在jsp页面中用来显示分页数据这样将来只要修改xml文件,就能实现动态查询结果的分页。另外还要考虑是一次取回所有满足条件的数据,还是分页取回单页的数据,不管哪种情况,只要再扩展上面javabean就可以了 oracle: select * from tab where rownum<20 minus select * from tab where rownum <10 楼上的查询效率很低,不是我说的,以前见过的很多帖子都这样说,但也没有看到什么公认效率最高的SQL~ 以上几位的方法让我受益非浅特别是xujiaqiang() 的方法我这里有个方法<jsp:useBean id="DB" class="Beanes.datacon" scope="page" /><%int intPageSize; //一页显示的记录数int intRowCount; //记录总int intPageCount; //总页int intPage; //待显示页码String strPage;int j;intPageSize = 10;//设置一页显示的记录数strPage = request.getParameter("page");//取得待显示页码if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据 intPage = 1;}else{ //将字符串转换成整型; intPage = java.lang.Integer.parseInt(strPage); if(intPage<1) intPage = 1; } int i=0;String sqlcount="select count(*) from news where news_type='政务动态'";ResultSet rsCount=DB.executeQuery(sqlcount);if (rsCount.next()){i= rsCount.getInt(1);;}rsCount.close();intRowCount=i;intPageCount = (intRowCount+intPageSize-1) / intPageSize;//记算总页数//调整待显示的页码if(intPage>intPageCount) intPage = intPageCount;%><table width="90%" border="0" bgcolor="#F7f7e7"> <tr bgcolor="e2eaca"> <td colspan="2" bgcolor="e2eaca" height="26"> <div align="center" class="more">名 称</div></td> <td width="30%" height="26"> <div align="center" class="more">发布日期</div></td> </tr> <% int rownum=10; ResultSet Rs=DB.executeQuery("select news_id,news_title,news_date from news where news_type='政务动态' order by news_id desc"); String news_id="",news_title="",news_date=""; Rs.next(); if(intPageCount>0) { //将记录指针定位到待显示页的第一条记录上 Rs.absolute((intPage-1) * intPageSize+1); //显示数据 j = 0; while(j<(intPageSize) && !Rs.isAfterLast()) { news_id=Rs.getString("news_id"); news_title=Rs.getString("news_title"); news_date=Rs.getString("news_date"); rownum--; %> <tr> <td width="5%"> <div align="center"><img src="image/xj_news_p.gif" width="2" height="2"></div></td> <td width="65%" class="text"><a href="zwdt_desc.jsp?news_id=<%=news_id%>"><%=news_title%></a></td> <td class="text"> <div align="center"><%=news_date.substring(0,10)%></div></td> </tr> <% j++; Rs.next(); } } Rs.close(); for(int iflag=0;iflag<rownum;iflag++){ %> <tr> <td width="5%"> <div align="center"><img src="image/xj_news_p.gif" width="2" height="2"></div></td> <td width="65%" class="text"> </td> <td class="text"> <div align="center"> </div></td> </tr> <%}%> <tr> <td colspan="3"><div align="right" class="more">第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage<intPageCount){%> <a href="zwdt.jsp?page=<%=intPage+1%>">下一页</a> <%}%> <%if(intPage>1){%> <a href="zwdt.jsp?page=<%=intPage-1%>">上一页</a> <%}%> </div></td> </tr> </table>datacon.java是package Beanes;import java.sql.*;public class datacon { String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String ConnStr = "jdbc:odbc:nxlt"; String UserName = "sa"; String UserPassword = ""; Connection conn = null; ResultSet rs = null; Statement stmt = null; public datacon() { try { Class.forName(DBDriver); }catch(java.lang.ClassNotFoundException e) { System.err.println("数据库驱动程序加载错误:" + e.getMessage()); } } public ResultSet executeQuery(String sql) { rs = null; try{ conn = DriverManager.getConnection(ConnStr,UserName,UserPassword); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql); }catch(SQLException ex){ System.err.println("数据库检索错误: " + ex.getMessage()); } return rs; } public boolean executeUpdate(String sql) { boolean bupdate=false; rs = null; try { conn = DriverManager.getConnection(ConnStr,UserName,UserPassword); stmt = conn.createStatement(); int rowCount = stmt.executeUpdate(sql); if(rowCount!=0)bupdate=true; stmt.close(); conn.close(); } catch(SQLException ex) { System.err.println("数据库更新出错:" + ex.getMessage()); } return bupdate; } public boolean executeSP(String sql) { boolean pupdate=false; try{ conn=DriverManager.getConnection(ConnStr,UserName,UserPassword); CallableStatement stm=conn.prepareCall("{call "+sql+"}"); //stm.setString(1,strdate); int rowNum=stm.executeUpdate(); if (rowNum!=0) pupdate=true; stm.close(); conn.close(); } catch(SQLException ex) { System.err.println("数据库更新错误"+ex.getMessage()); } return pupdate; } public boolean closeConn() { try { if (rs!=null) rs.close(); if (stmt!=null) stmt.close(); if (conn!=null) conn.close(); return true; }catch (SQLException ex){ return false; } } } 重要的是思想:分页实现的思想是显示第n页时,就把指针移动到第n*m个记录(m是每页显示记录的条数),然后开始显示m条记录或者实际剩下的记录(<m) 这是我用的分页,大家看看,<%@ page contentType="text/html;charset=gb2312" %><%@ page import="com.schoolwx.util.*" %><%@ page import="java.util.*" %><%@ page import="java.math.BigInteger.*" %><jsp:useBean id="getArt" scope="request" class="com.schoolwx.util.articleManager" /><%if(session.getAttribute("userName")==null)response.sendRedirect("../errMsg.jsp?err=1");%><HTML><HEAD><TITLE>校园原创文学网</TITLE><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"><link rel="stylesheet" href="../css/web.css" type="text/css"></HEAD><BODY BGCOLOR=#FFFFFF leftmargin="0" topmargin="0" background="../images/bg.gif"><jsp:include page="top.jsp" flush="true"/><%String author=(String)session.getAttribute("userName");//articleManager getArt=new articleManager();//Vector artVectorList=getArt.getArticleList(" where author='"+author+"'");Vector artVectorList=getArt.getArticleList(" where art_fb=2");String pageStr=request.getParameter("pageId");int intPageSize=15; //一页显示的记录数int intRowCount=artVectorList.size(); //记录总数int intPageCount=intRowCount/intPageSize+1;if(intRowCount%intPageSize==0)intPageCount--; //总页数int intPage; //待显示页码if(pageStr==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据intPage = 1;}else{//将字符串转换成整型try{intPage = java.lang.Integer.parseInt(pageStr);}catch(Exception e){intPage=1;}if(intPage<1||intPage>intPageCount) intPage = 1;}int fromCount=(intPage-1)*intPageSize;int toCount=0;if(intPage==intPageCount){ toCount=intRowCount;}else{toCount=intPageSize*intPage;}//out.println(fromCount);//out.println(toCount);%><table cellspacing=0 cellpadding=0 width=780 align=center bgcolor=#ffffff border=0 height="482"> <tbody> <tr> <td valign=top width="45" background="../images/14.gif"><img height=322 src="../images/9.gif" width=51> </td> <td valign=top width="131"><jsp:include page="left.jsp" flush="true"/></td> <td valign=top width="604"> <table cellspacing=0 cellpadding=0 width="100%" border=0> <tbody> <tr> <td height=25><img height=1 src="../images/dot.gif" width=1></td> </tr> </tbody> </table> <table width="520" border="0" cellpadding="0" cellspacing="0" align="center"> <tr bgcolor="#89C86A"> <td rowspan="2" width="93" height="18" align="center" bgcolor="#89C86A">我发表的文章</td> <td width="427" height="16" bgcolor="#FFFFFF" align="right">共有<%=intRowCount%>篇文章已发表 </td> </tr> <tr bgcolor="#89C86A"> <td width="427" height="2"></td> </tr> <tr valign="top"> <td colspan="2" height="415"> <br> <% if(intRowCount==0){ out.println("目前未发表任何文章!"); }else{ %> <table width="500" border="0" cellspacing="2" cellpadding="0" align="center"> <tr align="center" bgcolor="#A5CB9A"> <td width="233" height="15">标题</td> <td width="49" height="15">类型</td> <td width="46" height="15">阅读</td> <td width="35" height="15">评论</td> <td width="125" height="15">发表时间</td> </tr> <% for(int i=fromCount;i<toCount;i++){ article art=(article)artVectorList.get(i); out.println("<tr "); if((i+intPage-1)%2==0) out.println("bgcolor=\"#C6F6DC\""); else out.println("bgcolor=\"#eaf9f9\""); out.println("height=\"15\">"); out.println("<td ><A HREF=\"../article/viewart.jsp?art_id="+art.getArtID()+"\" target=_blank>"+art.getArtTitle()+"</A></td>"); out.println("<td align=center>"+art.getArtType()+"</td>"); out.println("<td align=center>"+art.getArtReadTime()+"次</td>"); out.println("<td align=center>"); if(art.getArtCanPn()==1)out.println("允许"); out.println("</td>"); out.println("<td >"+art.getArtFbTime()+"</td>"); out.println("</tr>"); } %> <tr bgcolor="#FFFFFF" align="right"> <td colspan="5" height="15">共<%=intPageCount%>页,第<%=intPage%>页, <% if(intPage==1)out.print("上一页,"); else out.print("<a href=\"?pageId="+(intPage-1)+"\">上一页</a>,"); if(intPage==intPageCount)out.print("下一页"); else out.println("<a href=\"?pageId="+(intPage+1)+"\">下一页</a>"); %> </td> </tr> </table> <%}//if(intRowCount==0) %> </td> </tr> </table> </td> </tr> </tbody> </table><TABLE cellSpacing=0 cellPadding=0 width=776 align=center border=0> <TBODY> <TR bgColor=#89c86a> <TD height=5><IMG height=3 src="../images/dot.gif" width=19></TD></TR></TBODY></TABLE><jsp:include page="button.jsp" flush="true"/><script language="JavaScript"><!--function innfrom(a){if(a==2) document.all("from").innerHTML=" 摘自:<input type=\"text\" name=\"zzfrom\" size=\"20\" maxlength=\"30\" class=\"put\"><font color=red>*</font>";else document.all("from").innerHTML="";}//--></script></BODY></HTML> 下面这段代码,求指教。 解决“表单重复提交”有什么好办法 struts标签 的 textfield 如何获取request里的对象的属性值?? jsp如何显式声明一个局部变量? 请大家帮忙,怎么处理jsp跳转问题 xml相关……!? 怎样引入系统的“import javax.servlet.* ;”包 请教关于在jsp中使用javabean的问题 jsp标记问题,怎么运行不通过阿,求助好心人@.@ 请教:使用SmartUpload组件后,无法通过request得到其他参数?为什么? 用java生成word文档 session的问题!!急 高手们快帮忙啊!!!
<%@ page language="java" import="java.sql.*" %>
<%@ page contentType="text/html;charset=gb2312" %>
<%
//变量声明
//数据库连接对象
Connection sqlCon;
//Statement对象
Statement sqlStmt;
//记录集对象
ResultSet sqlRst;
//数据库连接字符串
String strCon;
//SQL语句
String strSQL;
//每页记录数
int intPageSize;
//记录总数
int intRowCount;
//总页数
int intPageCount;
//当前页码
int intPage;
//传递参数用变量
String strPage;
//循环变量
int i;//定义每页记录数为0
intPageSize =10;//获得当前页码
strPage = request.getParameter("page");
//以不带页码访问时,没有参数,此时为首页
if(strPage==null){
intPage = 1;
}
else{
//转换字符串为整型
intPage = java.lang.Integer.parseInt(strPage);
//对于小于的变量,设置当前页为第一页
if(intPage<1) intPage = 1;
}
//下面的代码为加载JDBD-ODBC驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//设置数据库连接字符串
//使用js dsn连接
strCon="jdbc:odbc:js";//连接数据库
sqlCon = DriverManager.getConnection(strCon,"","");//创建一个记录指针可以上下移动的只读的Statement对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句
strSQL = "select * from 论文";//执行SQL语句,获得返回集
sqlRst = sqlStmt.executeQuery(strSQL);//系统记录指针对最后一行
sqlRst.last();//获得总行数
intRowCount = sqlRst.getRow();//计算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;//对于大于总页数的页面,调整为最大页码
if(intPage>intPageCount) intPage = intPageCount;
%>
<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>翻页程序示例</title>
</head><p align=center>翻页程序示例</p>
<body>
<!--在HTML中画一张表格用于显示记录-->
<table border="0" width="100%" cellspacing="1" cellpadding="0" height="167">
<tr>
<td width="80%" height="165" valign="top">
<table border="0" cellspacing="0" cellpadding="0" width="100%" height="81"><!--定义表头--->
<tr>
<td width="37" bgcolor="#CCFFCC" height="18">编号</td>
<td width="129" bgcolor="#CCFFCC" height="18">名称</td>
<td width="165" bgcolor="#CCFFCC" height="18">发表日期</td>
<td width="69" bgcolor="#CCFFCC" height="18">作者</td>
<td width="137" bgcolor="#CCFFCC" height="18">文件名</td>
</tr><%
if(intPageCount>0){
//移动记录指针到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1);//显示当前记录
i = 0;
while(i<intPageSize && !sqlRst.isAfterLast()){
%>
<tr bgcolor=#f2f2e6>
<td width="37" height="18"><%=sqlRst.getString(1)%></td>
<td width="129" height="18"><%=sqlRst.getString(2)%></td>
<td width="165" height="18"><%=sqlRst.getString(3)%></td>
<td width="69" height="18"><%=sqlRst.getString(4)%></td>
<td width="137" height="18"><%=sqlRst.getString(5)%></td>
</tr>
<%
//移动到下一条记录
sqlRst.next();
i++;
}
}
%></table> <table border="0" width="100%" cellspacing="0" cellpadding="0" height="52">
<tr>
<!--定义翻页用表单-->
<form action="PageView.jsp" method="GET">
<td height="52" bgcolor="#99FFCC" align="right">
<%
//生成用于翻页的超链
if(intPage!=1)
//不是第一页,生成........
{ out.println("<A HREF=PageView.jsp?page=1>第一页</A>");
out.println("<A HREF=PageView.jsp?page=" + (intPage-1) + ">上一页</A>");
}
if(intPage!=intPageCount)
//不是最后一页,生成........
{
out.println("<A HREF=PageView.jsp?page=" + (intPage+1) + ">下一页</A>");
out.println("<A HREF=PageView.jsp?page=" + intPageCount + ">最后一页</A>");
}
%> 输入页数:<input type="text" size="3" name="Page">
<!--显示当前页数与总页数-->
页数:<font color="#FF0000"><%=intPage%>/<%=intPageCount%></font>
</form>
</tr>
</table>
</body>
</html>
<%
//关闭记录集
sqlRst.close();
//关闭Statement对象
sqlStmt.close();
//关闭数据库
sqlCon.close();
%>
慢慢改吧~~~
但是动态的sql语句就不行了
如
String tmp1=request.getParameter("search");
String tmp2=request.getParameter("select");
String sql1= "select 书目控制号, 题名,责任者,出版项 from bookctrl where 书目控制号!=0 and "+tmp2+" like '%"+tmp1+"%'";
因为每次翻页也要获取上一页的search和select,而PageView.jsp里面没有search和select变量,所以生成的sql语句不完全,当PageView.jsp?page=2时,返回空的ResultSet
将来修改很困难,要想一劳永逸,好要下工夫。可以这样考虑:
一个PageControl类实现分页计算
一个JAVABEAN(值对象)保存查询结果,"使用"或"继承"PageControl
一个xml文件保存JAVABEN的结构,如字段名称、类型、中文名称,显示的列宽度等等
一个xls文件显示xml文件和javabean的数据
一个XmlTransformer处理转换过程
一个标签类在jsp页面中用来显示分页数据这样将来只要修改xml文件,就能实现动态查询结果的分页。
另外还要考虑是一次取回所有满足条件的数据,还是分页取回单页的数据,
不管哪种情况,只要再扩展上面javabean就可以了
特别是xujiaqiang() 的方法
我这里有个方法
<jsp:useBean id="DB" class="Beanes.datacon" scope="page" />
<%
int intPageSize; //一页显示的记录数
int intRowCount; //记录总
int intPageCount; //总页
int intPage; //待显示页码
String strPage;
int j;
intPageSize = 10;//设置一页显示的记录数
strPage = request.getParameter("page");//取得待显示页码
if(strPage==null)
{//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else
{
//将字符串转换成整型;
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}
int i=0;
String sqlcount="select count(*) from news where news_type='政务动态'";
ResultSet rsCount=DB.executeQuery(sqlcount);
if (rsCount.next())
{
i= rsCount.getInt(1);;}
rsCount.close();
intRowCount=i;
intPageCount = (intRowCount+intPageSize-1) / intPageSize;//记算总页数
//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
%>
<table width="90%" border="0" bgcolor="#F7f7e7">
<tr bgcolor="e2eaca">
<td colspan="2" bgcolor="e2eaca" height="26"> <div align="center" class="more">名
称</div></td>
<td width="30%" height="26"> <div align="center" class="more">发布日期</div></td>
</tr>
<%
int rownum=10;
ResultSet Rs=DB.executeQuery("select news_id,news_title,news_date from news where news_type='政务动态' order by news_id desc");
String news_id="",news_title="",news_date="";
Rs.next();
if(intPageCount>0)
{
//将记录指针定位到待显示页的第一条记录上
Rs.absolute((intPage-1) * intPageSize+1);
//显示数据
j = 0;
while(j<(intPageSize) && !Rs.isAfterLast())
{
news_id=Rs.getString("news_id");
news_title=Rs.getString("news_title");
news_date=Rs.getString("news_date");
rownum--;
%>
<tr>
<td width="5%"> <div align="center"><img src="image/xj_news_p.gif" width="2" height="2"></div></td>
<td width="65%" class="text"><a href="zwdt_desc.jsp?news_id=<%=news_id%>"><%=news_title%></a></td>
<td class="text"> <div align="center"><%=news_date.substring(0,10)%></div></td>
</tr>
<%
j++;
Rs.next();
}
}
Rs.close();
for(int iflag=0;iflag<rownum;iflag++){
%>
<tr>
<td width="5%"> <div align="center"><img src="image/xj_news_p.gif" width="2" height="2"></div></td>
<td width="65%" class="text"> </td>
<td class="text"> <div align="center"> </div></td>
</tr>
<%}%>
<tr>
<td colspan="3"><div align="right" class="more">第<%=intPage%>页 共<%=intPageCount%>页
<%if(intPage<intPageCount){%>
<a href="zwdt.jsp?page=<%=intPage+1%>">下一页</a>
<%}%>
<%if(intPage>1){%>
<a href="zwdt.jsp?page=<%=intPage-1%>">上一页</a>
<%}%>
</div></td>
</tr>
</table>
datacon.java是
package Beanes;import java.sql.*;
public class datacon
{
String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String ConnStr = "jdbc:odbc:nxlt";
String UserName = "sa";
String UserPassword = "";
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
public datacon()
{
try {
Class.forName(DBDriver);
}catch(java.lang.ClassNotFoundException e)
{
System.err.println("数据库驱动程序加载错误:" + e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
rs = null;
try{
conn = DriverManager.getConnection(ConnStr,UserName,UserPassword);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}catch(SQLException ex){
System.err.println("数据库检索错误: " + ex.getMessage());
}
return rs;
}
public boolean executeUpdate(String sql)
{
boolean bupdate=false;
rs = null;
try {
conn = DriverManager.getConnection(ConnStr,UserName,UserPassword);
stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
if(rowCount!=0)bupdate=true;
stmt.close();
conn.close();
}
catch(SQLException ex)
{
System.err.println("数据库更新出错:" + ex.getMessage());
}
return bupdate;
}
public boolean executeSP(String sql)
{
boolean pupdate=false;
try{
conn=DriverManager.getConnection(ConnStr,UserName,UserPassword);
CallableStatement stm=conn.prepareCall("{call "+sql+"}");
//stm.setString(1,strdate);
int rowNum=stm.executeUpdate();
if (rowNum!=0) pupdate=true;
stm.close();
conn.close();
}
catch(SQLException ex)
{
System.err.println("数据库更新错误"+ex.getMessage());
}
return pupdate;
}
public boolean closeConn() {
try {
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
return true;
}catch (SQLException ex){
return false;
}
}
}
<%@ page import="com.schoolwx.util.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.math.BigInteger.*" %>
<jsp:useBean id="getArt" scope="request" class="com.schoolwx.util.articleManager" />
<%if(session.getAttribute("userName")==null)response.sendRedirect("../errMsg.jsp?err=1");%>
<HTML>
<HEAD>
<TITLE>校园原创文学网</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<link rel="stylesheet" href="../css/web.css" type="text/css">
</HEAD>
<BODY BGCOLOR=#FFFFFF leftmargin="0" topmargin="0" background="../images/bg.gif">
<jsp:include page="top.jsp" flush="true"/>
<%
String author=(String)session.getAttribute("userName");
//articleManager getArt=new articleManager();
//Vector artVectorList=getArt.getArticleList(" where author='"+author+"'");
Vector artVectorList=getArt.getArticleList(" where art_fb=2");
String pageStr=request.getParameter("pageId");
int intPageSize=15; //一页显示的记录数
int intRowCount=artVectorList.size(); //记录总数
int intPageCount=intRowCount/intPageSize+1;
if(intRowCount%intPageSize==0)intPageCount--; //总页数
int intPage; //待显示页码
if(pageStr==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}else{//将字符串转换成整型
try{
intPage = java.lang.Integer.parseInt(pageStr);
}catch(Exception e){
intPage=1;
}
if(intPage<1||intPage>intPageCount) intPage = 1;
}
int fromCount=(intPage-1)*intPageSize;
int toCount=0;
if(intPage==intPageCount){
toCount=intRowCount;
}else{
toCount=intPageSize*intPage;
}
//out.println(fromCount);
//out.println(toCount);
%>
<table cellspacing=0 cellpadding=0 width=780 align=center bgcolor=#ffffff
border=0 height="482">
<tbody>
<tr>
<td valign=top width="45" background="../images/14.gif"><img height=322
src="../images/9.gif" width=51>
</td>
<td valign=top width="131"><jsp:include page="left.jsp" flush="true"/></td>
<td valign=top width="604">
<table cellspacing=0 cellpadding=0 width="100%" border=0>
<tbody>
<tr>
<td height=25><img height=1
src="../images/dot.gif"
width=1></td>
</tr>
</tbody>
</table>
<table width="520" border="0" cellpadding="0" cellspacing="0" align="center">
<tr bgcolor="#89C86A">
<td rowspan="2" width="93" height="18" align="center" bgcolor="#89C86A">我发表的文章</td>
<td width="427" height="16" bgcolor="#FFFFFF" align="right">共有<%=intRowCount%>篇文章已发表
</td>
</tr>
<tr bgcolor="#89C86A">
<td width="427" height="2"></td>
</tr>
<tr valign="top">
<td colspan="2" height="415"> <br>
<%
if(intRowCount==0){
out.println("目前未发表任何文章!");
}else{
%>
<table width="500" border="0" cellspacing="2" cellpadding="0" align="center">
<tr align="center" bgcolor="#A5CB9A">
<td width="233" height="15">标题</td>
<td width="49" height="15">类型</td>
<td width="46" height="15">阅读</td>
<td width="35" height="15">评论</td>
<td width="125" height="15">发表时间</td>
</tr>
<%
for(int i=fromCount;i<toCount;i++){
article art=(article)artVectorList.get(i);
out.println("<tr ");
if((i+intPage-1)%2==0)
out.println("bgcolor=\"#C6F6DC\"");
else
out.println("bgcolor=\"#eaf9f9\"");
out.println("height=\"15\">");
out.println("<td ><A HREF=\"../article/viewart.jsp?art_id="+art.getArtID()+"\" target=_blank>"+art.getArtTitle()+"</A></td>");
out.println("<td align=center>"+art.getArtType()+"</td>");
out.println("<td align=center>"+art.getArtReadTime()+"次</td>");
out.println("<td align=center>");
if(art.getArtCanPn()==1)out.println("允许");
out.println("</td>");
out.println("<td >"+art.getArtFbTime()+"</td>");
out.println("</tr>");
}
%>
<tr bgcolor="#FFFFFF" align="right">
<td colspan="5" height="15">共<%=intPageCount%>页,第<%=intPage%>页,
<%
if(intPage==1)out.print("上一页,");
else
out.print("<a href=\"?pageId="+(intPage-1)+"\">上一页</a>,");
if(intPage==intPageCount)out.print("下一页");
else
out.println("<a href=\"?pageId="+(intPage+1)+"\">下一页</a>");
%>
</td>
</tr>
</table>
<%}//if(intRowCount==0) %>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
<TABLE cellSpacing=0 cellPadding=0 width=776 align=center border=0>
<TBODY>
<TR bgColor=#89c86a>
<TD height=5><IMG height=3
src="../images/dot.gif"
width=19></TD></TR></TBODY></TABLE>
<jsp:include page="button.jsp" flush="true"/>
<script language="JavaScript">
<!--
function innfrom(a){
if(a==2)
document.all("from").innerHTML=" 摘自:<input type=\"text\" name=\"zzfrom\" size=\"20\" maxlength=\"30\" class=\"put\"><font color=red>*</font>";
else
document.all("from").innerHTML="";
}
//-->
</script>
</BODY>
</HTML>