社区
Web 开发
帖子详情
50分求一个jsp从数据库读出文件分页的程序??
hexinyu3
2004-09-28 11:54:15
50分求一个jsp从数据库读出文件分页的程序??
...全文
177
6
打赏
收藏
50分求一个jsp从数据库读出文件分页的程序??
50分求一个jsp从数据库读出文件分页的程序??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aoplo
2004-09-28
打赏
举报
回复
<%@ page import="java.util.Vector"%>
<html>
<head>
<title>分页显示</title>
</head>
<body>
<%
Vector vector = (Vector)session.getAttribute("vector");
int pageSize = 3; //每页显示的记录数
int totalNum = vector.size(); //总共要显示的记录数
int totalPageNum = totalNum / pageSize + 1; //不能整除的话就还要一页显示余下的记录
if (totalNum % pageSize == 0) totalPageNum = totalPageNum -1; //如果记录总数可以整除每页显示的记录数则减少一页
String sPageNum = (String)request.getParameter("sPageNum");
int iPageNum; //当前页数
int iLeavePage; //剩下页数
int currentCount; //当前要显示的记录数
if (sPageNum == null)
{
iPageNum = 1;
iLeavePage = totalPageNum - iPageNum;
}
else
{
iPageNum = new Integer(sPageNum).intValue();
iLeavePage = totalPageNum - iPageNum;
}
if ((iPageNum == totalPageNum)&&(totalNum % pageSize != 0))
currentCount = totalNum % pageSize;
else currentCount = pageSize;
%>
<%
if (iPageNum >1)
{
%>
<a href="display.jsp?sPageNum=<%= new Integer(iPageNum - 1).toString()%>">上一页</a>
<%
}
if (iPageNum < totalPageNum)
{
%>
<a href="display.jsp?sPageNum=<%= new Integer(iPageNum + 1).toString()%>">下一页</a>
<%
}
%>
<table>
<tr>
<td>属性</td>
<td>名字</td>
<td>密码</td>
</tr>
<%
for (int i=(iPageNum-1)*pageSize;i<(iPageNum-1)*pageSize+currentCount;i++)
{
String[] str = (String[])vector.get(i);
%>
<tr>
<td><%out.println(str[0]);%></td>
<td><%out.println(str[1]);%></td>
<td><%out.println(str[2]);%></td>
</tr>
<%
}
%>
</table>
</body>
</html>
hbuzhang
2004-09-28
打赏
举报
回复
上面是我用的,里面的数据可能和你的不一样,你可以根据情况适当的改进
hbuzhang
2004-09-28
打赏
举报
回复
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.sql.*"%>
<%@ page import="java.lang.Math.*" %>
<jsp:useBean id="userBean" scope="page" class="我的bean"/>
int t;
int mtotal;
t=0;
String strSQLsize="SELECT * FROM 数据表";
ResultSet RSsize = userBean.executeQuery(strSQLsize);
while(RSsize.next()){
t=t+1;
}
if((t%5)>0){
mtotal=t/5+1;
}else mtotal=t/5;
%>
<%!String pageNo, mTmp;
int i, j, k;
%>
<%
pageNo = request.getParameter("pageNo");
if(pageNo == null){
pageNo = "1";
}
j = Integer.parseInt(pageNo);
if(j < 1)
j = 1;
if(j > mtotal)
j = mtotal;
%>
<%
String strSQL="SELECT * FROM 数据表";
ResultSet RSa = userBean.executeQuery(strSQL);
for(k = 0;k < (j-1)*5;k++)
{
RSa.next();
}
i = 0;
k = 1;
out.print("<table border='1' bgcolor='#99CCFF'><tr><td width='296'>文章主题</td><td width='136'>作者</td></tr></table>");
while (RSa.next()) {
//out.println("ok"+i+"ok");
i = i + 1;
//超过3条
if(i == 6)
{
k = 0;
break;
}
String id=RSa.getString(1);
out.print("<table border='1'><tr><td width='296'><a href='test1.jsp?zhuti="+RSa.getString(1)+"'>"+RSa.getString(1)+"</td><td width='136'>"+RSa.getString(2)+"</td></tr></table>");
}
i = i - k;
RSa.close();
%>
<%////////////////////////////////////////////////
if(j > 1)
{
%><table>
<tr>
<td width='256'></td>
<td>
<a href="con1.jsp?pageNo=1">第一页</a>
<%
int ii = Integer.parseInt(pageNo,10);
// out.println(ii);
if(ii > 1)
ii = ii -1;
String ssTmp = Integer.toString(ii);
%>
<a href="con1.jsp?pageNo=<%=ssTmp%>">上一页</a>
<%
}
if(j < mtotal)
{
int ii = Integer.parseInt(pageNo,10);
if(ii < mtotal)
ii = ii + 1;
String ssTmp = Integer.toString(ii);
%>
<a href="con1.jsp?pageNo=<%=ssTmp%>">下一页</a>
<a href="con1.jsp?pageNo=<%=mtotal%>">最后页</a>
<%
}
if(mtotal < j)
j = mtotal;
%></td>
</tr>
</table>
hj821003
2004-09-28
打赏
举报
回复
eg:
select top n * from t while id not in (select top m id from t order by id) order by id
n是每页显示记录数,m是当前页前面的记录数,每次用not in把前面的记录排除,在剩下的记录中显示前面的记录从而实现分页。
drugon
2004-09-28
打赏
举报
回复
算法比较简单,但是你有没有考虑过各种分页算法的效率问题呢?一般的处理不外乎是先读出所有的记录,然后得到当前是多少页,根据每页要显示的行数,用数据库的relative(int rows)方法来绝对定位到一条记录下面,然后while循环每页要显示的行数的次数,就是这样的。
这样的算法比较简单,但是效率不高,特别是在有大量数据的前提下,一次不可以把所有的数据都读出来。
globaldf01
2004-09-28
打赏
举报
回复
1.定义一个分页数全局常量,即每页显示的数据条数。
private final static int SKIP = 100;
2.定义一个确定某个分页条数的全局变量,即该显示页的当前显示数据条数。
private static int cur = 0;
3.定义一个ResultSet全局变量,以便多次使用
private static java.sql.Result rs = null;
4.打开一个数据库连接[/pre]
Class.forName( sqlDriver );
java.sql.Connection conn = DriverManager.getConnection( URL, (String)userName,(String)Passwd)
Statement stmt = conn.createStatement();
String searchSql = "......";
rs = stmt.executeQuery(searchSql);
5.获取查询结果集数据(一般是在查询按钮的响应事件函数里)
......
nextButton.setEnable(true);
cur = 0;
while( cur < SKIP && rs.next() ){
cur ++ ;
.....(获取rs中的记录,存入java程序的变量中)
}
6.显示下一页的结果集数据(一般是在下页按钮的响应事件函数里)
if( rs.getRow() == 0 )
{
nextButton.setEnable(false);
closeConnection(); --rs的cursor已经到了最后,结果集显示完毕,关闭此次的连接
}
cur = 0;
if(rs != null && rs.getRow() > 0)
{
....将上页显示的内容清除
while(cur < SKIP && rs.next() )
{
cur ++ ;
.....(获取结果集中的记录,存入java程序的变量中)
}
}
缺陷:
此方法根据2.0版本的JDBC(具体和JDBC驱动程序的提供商有关)之前的ResultSet类产生,因为ResultSet无法将已经显示的结果集回滚,所以此法只能按照ResultSet类的定义,从左往右、从前往后的浏览数据结果。无法动态显示指定任意前后的结果集数据。
Jsp
真
分页
实例—
分页
网页的
分页
功能的实现比较简单,实现方法也多种多样。 今天总结
一个
简单的
Jsp
真
分页
实例。 首先,提到
分页
就要先明确
一个
概念,何为真
分页
何谓假
分页
。 假
分页
:一次性从
数据库
读出
表的所有数据一次性的返回给客户端,由js来控制每一页的显示。 真
分页
:由
程序
控制,每一次只返回一页大小的数据,显示到客户端。 由此可以很清楚的分辨出真假
分页
各自的优缺点: 假
分页
:由于一次性
读出
所有数据并返回给客户端,如果数据量庞大,所以这一次的动作可能是非常消耗服务器资源和带宽的, 但是返回给客户端以后就非常轻松了,客户在一段时间内不会再像服务器端请求资源。但不代表可能出现一些意外情况, 比如说客户将浏览器关闭,重新访问
java面试题
Java 软件工程师面试资料大整合 1 Java 面霸 1 1. int 和 Integer 有什么区别? 8 2. String 和StringBuffer的区别 8 3. 运行时异常与一般异常有何异同? 8 4. 说出ArrayList,Vector,LinkedList的存储性能和特性 8 5. EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 9 6. Collection 和 Collections的区别。 9 7. &和&&的区别。 9 8. HashMap和Hashtable的区别。 10 9. final, finally, finalize的区别。 10 10. sleep() 和 wait() 有什么区别? 10 11. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 10 12. error和exception有什么区别? 11 13. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。 11 14. 简述synchronized和java.util.concurrent.locks.Lock的异同 ? 11 15. 当
一个
线程进入
一个
对象的
一个
synchronized方法后,其它线程是否可进入此对象的其它方法? 11 16. abstract class和interface有什么区别? 12 17. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 12 18. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 12 19. heap和stack有什么区别。 13 20. forward 和redirect的区别 13 21. EJB与JAVA BEAN的区别? 13 22. Static Nested Class 和 Inner Class的不同。 13 23.
JSP
中动态INCLUDE与静态INCLUDE的区别? 14 24. List, Set, Map区别 14 25. 集合类都有哪些?主要方法? 14 26. 简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。 14 27. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 14 28.
JSP
和Servlet有哪些相同点和不同点,他们之间的联系是什么? 15 29. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 15 30. 构造器Constructor是否可被override 15 31. try {}里有
一个
return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 16 32. 应用服务器与WEB SERVER的区别? 16 33. BS与CS的联系与区别。 16 34. 启动
一个
线程是用run()还是start()? 17 35. 当
一个
对象被当作参数传递到
一个
方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 18 36. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 18 37.
一个
".java"源
文件
中是否可以包括多个类(不是内部类)?有什么限制? 18 38. 比较truncate和delete 命令 18 39. 解释$ORACLE_HOME 和$ORACLE_BASE的区别? 19 40. session与cookie的区别和联系? 19 41. Statement和PrepareStatement的区别 19 42.
JSP
的内置对象及方法。 19 43.
JSP
的常用指令 20 44. 四种会话跟踪技术 20 45. Request对象的主要方法: 21 46.
jsp
有哪些动作?作用分别是什么? 21 47. 两种跳转方式分别是什么?有什么区别? 22 48. get和post的区别? 22 49. JDK,JRE,JVM的区别? 22
50
. Java中常见类,方法,接口 23 51. 多线程 23 51.1. 线程的基本概念 23 51.2. Java中的线程有四种状态 23 51.3. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 24 51.4. 线程同步的方法。 24 51.5. java中有几种方法可以实现
一个
线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 52.4. 连接池内连接的使用与释放 26 52.5. 配置连接池 26 52.6. 配置tomcat 6.0.10连接池 26 52.7. Hibernate实现
数据库
的连接不同方式: 28 52.8. 有几种开源的
数据库
连接池: 29 53. 描述一下JVM加载class
文件
的原理机制? 30 54. socket编程 30 54.1. 什么是TCP/IP、UDP? 30 54.2. Socket在哪里呢? 31 54.3. Socket是什么呢? 32 54.4. socket的实现步骤 37 55. Servlet 38 55.1. Servlet工作流程 38 55.2. servlet的生命周期 38 55.3. Servlet执行时一般实现哪几个方法? 38 56. 会话跟踪 39 56.1. Cookie 39 56.2. session 39 56.2.1. Session 生命周期 39 57. EJB的几种类型 39 58. 排序都有哪几种方法?请列举。用JAVA实现
一个
快速排序。 40 59. 请对以下在J2EE中常用的名词进行解释(或简单描述) 40 59.1. web 容器 40 59.2. EJB容器 40 59.3. JNDI 40 59.4. JMS 41 59.5. JTA 41 59.6. JAF 41 59.7. RMI/IIOP 41 60. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 41 61. MVC的各个部分都有那些技术来实现?如何实现? 42 62. java中实现多态的机制是什么? 42 63. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 42 63.1. 判断该对象是否是时候可以收集方法 43 63.1.1. 引用计数 43 63.1.2. 对象引用遍历 43 63.2. 几种垃圾回收机制 43 63.2.1. 标记-清除收集器 43 63.2.2. 标记-压缩收集器 43 63.2.3. 复制收集器 44 63.2.4. 增量收集器 44 63.2.5. 分代收集器 44 63.2.6. 并发收集器 44 63.2.7. 并行收集器 44 63.3. Sun HotSpot 1.4.1 JVM堆大小的调整 44 63.4. BEA JRockit JVM的使用 45 63.4.1. Bea JRockit JVM支持4种垃圾收集器: 46 63.5. 如何从JVM中获取信息来进行调整 46 63.6. Pdm系统JVM调整 47 63.6.1. 服务器:前提内存1G 单CPU 47 63.6.2. 客户机:通过在JNLP
文件
中设置参数来调整客户端JVM 47 64. 什么时候用assert。 47 65. 什么是java序列化,如何实现java序列化? 48 65.1. java序列化、反序列化 48 65.2. 对象的序列化主要有两种用途: 48 65.3. 对象序列化包括如下步骤: 49 65.4. 对象反序列化的步骤如下: 49 66. 反射机制 49 66.1.1. 传统的类型转换。 49 66.1.2. 通过Class对象来获取对象的类型。 49 66.1.3. 通过关键字instanceof或Class.isInstance()方法 49 67. 说出一些常用的类,包,接口,请各举5个
50
68. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 51 69. jdbc 51 69.1. 简述 51 69.2. JDBC调用
数据库
的基本步骤 52 69.3. JDBC URL 52 70. MVC设计模式 53 71. Hibernate 54 71.1. Hibernate 介绍 54 71.2. Hibernate 实现原理 55 71.3. Hibernate 优点 56 71.4. Hibernate 的缓存体系 56 71.4.1. 一级缓存: 56 71.4.2. 二级缓存: 56 71.4.3. 缓存管理 56 71.5. Hibernate 中Java对象的状态 58 71.5.1. 临时状态 (transient) 58 71.5.2. 持久化状态(persisted) 58 71.5.3. 游离状态(detached) 58 71.5.4. hibernate的三种状态之间如何转换 59 71.6. Hibernate并发机制,并发问题的处理。 59 71.6.1. Hibernate并发机制 59 71.6.2. 并发问题解决方案 59 71.7. Hibernate是如何延迟加载? 60 71.8. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 60 71.9. 说下Hibernate的缓存机制 60 71.10. Hibernate的查询方式 60 71.11. 如何优化Hibernate? 61 71.12. Hibernate和spring中常出现的几个异常 61 71.13. Hibernate与jdbc的联系 62 71.14. Hibernate与Spring的联系 62 71.15. Hibernate自带的
分页
机制是什么?如果不使用Hibernate自带的
分页
,则采用什么方式
分页
? 62 71.16. hibernate中一对多配置
文件
返回的是什么? 63 71.17. hibernate拒绝连接、服务器崩溃的原因?最少写5个 63 71.18. Hibernate主键介绍 63 71.18.1. Assigned 63 71.18.2. Hilo 63 71.18.3. Increment 64 71.18.4. Identity 64 71.18.5. Sequence 64 71.18.6. Native 64 71.18.7. UUID 64 71.18.8. Foreign GUID 65 71.19. Hibernate源码中几个包的作用简要介绍 65 72. struts 66 72.1. struts 简介 66 72.2. STRUTS的应用(如STRUTS架构) 66 72.3. 请写出Struts的工作原理、工作机制 67 72.4. struts的处理流程。 67 72.5. Struts 2框架的大致处理流程如下: 68 72.6. Struts体系结构中的组件 69 72.7. struts如何实现国际化 70 72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate框架是如何验证的? 74 72.11. dispatchAction是用什么技术实现的? 74 72.12. struts2.0的mvc模式?与struts1.0的区别? 74 72.13. struts1.2和struts2.0的区别?如何控制两种框架中的单例模式? 74 73. Spring 75 73.1. Spring 简介 75 73.2. 为什么要用Spring? 76 73.3. spring工作机制或工作原理 76 73.4. Spring是什么?根据你的理解详细谈谈你的见解。 76 73.5. 项目中如何体现Spring中的切面编程,具体说明。 77 73.6. 项目中用到的Spring中的切面编程最多的地方:声明式事务管理。 77 73.7. spring的事务如何配置 77 73.8. transaction有那几种实现(事务处理)(Spring) 79 73.9. Spring IoC 79 73.10. Spring AOP面向方面编程 82 74. 项目中为什么使用SSH 85 75. Spring在SSH中的作用 86 76. weblogic 86 76.1. 如何给weblogic指定大小的内存? 86 76.2. 如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 86 76.3. 如何启动时不需输入用户名与密码? 86 76.4. 在weblogic管理制台中对
一个
应用域(或者说是
一个
网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么
文件
中? 86 76.5. 在weblogic中发布ejb需涉及到哪些配置
文件
87 76.6. 如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 87 76.7. 如何查看在weblogic中已经发布的EJB? 87 76.8. 说说在weblogic中开发消息Bean时的persistent与non-persisten的差别 87 77. tomcat 87 77.1. 解决端口冲突导致tomcat无法启动的问题 87 77.2. 修改java虚拟机内存 88 77.3. 修改tomcat连接数 88 77.4. 禁止列出目录下的
文件
88 77.5. 设置session失效的时间 89 77.6. 设置MIME响应类型 89 77.7. 设置tomcat的默认访问页面 89 77.8. 设置tomcat管理用户 89 77.9. 附录 90 78. websphere 90 79. 常见异常 90 79.1. nullpointerexception 90 79.2. classnotfoundexception 90 79.3. arithmeticexception 90 79.4. arrayindexoutofboundsexception 91 79.5. illegalargumentexception 91 79.6. illegalaccessexception 91 80. 异常机制 97 81. 异常的分类 97 82. 异常的使用方法 98 83. JAVA代码查错 101 83.1. 判断 101 83.2. 判断 102 83.3. 判断 102 83.4. 判断 102 83.5. 判断 102 83.6. 判断 103 83.7. 判断 103 83.8. 判断 103 83.9. 判断 104 83.10. 判断 104 83.11. 判断 105 84. 编码 106 84.1. 写出
一个
单例模式 106 84.2. 我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出
一个
某种编码的字符串? 106 84.3. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出
程序
。以下
程序
使用内部类实现线程,对j增减的时候没有考虑顺序问题。 107 84.4. 现在输入n个数字,以逗号”,”分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset 108 84.5. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 109 84.6. 内部类的实现方式? 112 84.7. 编写
一个
截取字符串的函数,输入为
一个
字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 113 84.8. 将
一个
键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七),请用java语言编一段
程序
实现! 114 84.9. 题目1:用1、2、2、3、4、5这六个数字,用java写
一个
main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连. 117 84.10. 写
一个
方法,实现字符串的反转,如:输入abc,输出cba 119 84.11. 请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 119 84.12. 请写
一个
java
程序
实现线程连接池功能? 122 84.13. 编一段代码,实现在控制台输入一组数字后,排序后在控制台输出; 122 84.14. 列出某
文件
夹下的所有
文件
; 123 84.15. java调用系统命令实现删除
文件
的操作; 123 84.16. java实现从
文件
中一次
读出
一个
字符的操作; 124 84.17. 列出一些控制流程的方法; 124 84.18. 编写了
一个
服务器端的
程序
实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的
程序
; 124 84.19. 用jdom解析xml
文件
时如何解决中文问题?如何解析? 127 84.20. Jquery ajax 实现异步 129
Jsp
分页
的简单制作
Jsp
分页
的简单制作 运行环境:
jsp
+tomcat+eclipse 技术:servlet+
jsp
+mysql
分页
技术还区分两个:假
分页
和真
分页
假
分页
:一次性从
数据库
读出
表的所有数据一次性的返回给客户端,由js来控制每一页的显示。 真
分页
:由
程序
控制,每一次只返回一页大小的数据,显示到客户端。 由此可以很清楚的分辨出真假
分页
各自的优缺点: 假
分页
:由于一次性
读出
所...
关于jquery.datatable插件从
数据库
动态读取数据-动态
分页
在上篇随笔中所提到的数据插入方法,是将所有数据一次性
读出
并插入表格,只能针对数据量小的操作。 本篇随笔记录的是datatable插件服务器端
分页
读取数据的方法。 一、
分页
分页
的基本思想是根据datatable的页码及每页显示的行数,将数据从
数据库
分段提出,然后再填充到表格中,以达到
分页
的效果。 这里需要用到datatable插件的几个属性: "sEcho":这个属性
用
JSP
从
数据库
中读取图片并显示在网页上
环境:mysql+tomcat: 先在mysql下建立如下的table. 并insert图像. mysql.sql
文件
如下: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image blob, PRIMARY KEY (`photo_no`) ) 把show.
jsp
放在
Web 开发
81,116
社区成员
341,729
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章