小妖女 发表于 2015-1-18 11:48:32

JAVA教程之我终究了解了JSP 的分页了

但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net就不一样了,保持微软的一向风格,源代码不公开js|分页
我们查询数据库的时分,假如查询出来的了局是良多条,好比1000条,那末,假如都显现到一个页面上几乎是使人没法忍耐的事变!以是我们要分页显现,每页显现10或20行,分页的目标就如许复杂.







分页的办法有良多种,大概有些效力要高些,我这里只能参考最复杂能完成的办法:现查询出有几笔记录,然后盘算出一共分几页,然后分离显现每页.



查询出有几笔记录:



selectcount(*)fromlearning







盘算分几页:



if(counts%pageSizes==0){pageCounts=counts/pageSizes;}



else{pageCounts=counts/pageSizes+1;}



inti=(intPage-1)*pageSizes;(书上的算法很笨,用我这里本人想的,没有错)



下面就是判别是不是最初一页显现满,如,93笔记录,每页显现5条,那末最初一页要显现3条,一共19页显现!入手下手思索的时分我思索100页,哈哈,很特别的,不具有代表性,看来头脑的办法很主要,弱智吧?







然后就是分离显现这些页了,



Stringquery="Select*"+



"fromlearning"+



"wherearticle_idlike%";



这里我们碰到贫苦了,怎样显现?是先查出5条放在那里?一个甚么样的数据布局里?仍是分别数据库的纪录的条数?大概从这里我们能够思索出分页最少有2种办法:这里我们接纳后一种,这类办法的内容是:rs的遍历和每页几笔记录的分离:







inti=(intPage-1)*pageSizes;//判别每页能遍历到第几笔记录



ps=conn.prepareStatement(query);



ResultSetrs1=ps.executeQuery();



for(intj=0;j<i;j++)



rs1.next();//当是第一页的时分,rs从第0条入手下手,假如是第二页,从第(2-1)*5条元组入手下手遍历,假如第3页,将从第10条入手下手遍历



最初:while(rs1.next()&&i<pageSizes){i++;}很关头,即把持了每页显现的条数,又把持了编历的局限.



最初有一个成绩是:ResultSetrs1为何不必本来的rs?假如不睬解这个,能够说没有了解到这类分页的做法,由于rs在查询纪录总数的时分已指向了第一个,假如持续利用,将从查询出来的第二笔记录入手下手显现了!这个成绩是我刚调试好分页时分呈现的bug,看来都是先呈现成绩,再剖析缘故原由,再真正了解历程发生的缘故原由.







上面还要在显现分页的内容以外加一个from,内里供应链接来对以后页数的id+1(减1)来显现上一页或下一页的内容!







刚了解了分页,就即刻记上去,加深印象,更不敢独享意会后的高兴!



以下是JSP分页的代码:












*****************************



<%Cookiecookies[]=request.getCookies();if(cookies==null){response.sendRedirect("login.jsp");}%><%@includefile="articleconn.jsp"%><html>



<head><metahttp-equiv="Content-Type"content="text/html;charset=big5"><title>办理文件</title><metaname="GENERATOR"content="MicrosoftFrontPage4.0"><!--linkrel="stylesheet"href="css/article.css"--></head>



<%request.setCharacterEncoding("big5");Stringquery="Select*"+"fromlearning"+"wherearticle_idlike%";StringqueryCount="selectcount(*)fromlearning";StringstrPage=request.getParameter("strPage");intintPage;if(strPage==null){intPage=1;}elseintPage=Integer.parseInt(strPage);



intpageSizes=5;intcounts=1;intpageCounts=1;



try{PreparedStatementps=conn.prepareStatement(queryCount);ResultSetrs=ps.executeQuery();if(rs.next()){counts=Integer.parseInt(rs.getString(1));}







%><bodybgcolor="#FFFFFF"><p></p><tablewidth="700"border="1"cellspacing="0"cellpadding="0"align="center"bordercolorlight="#000000"bordercolordark="#FFFFFF"><trbgcolor="#99CCFF"><tdheight="10"bgcolor="#B5D85E"><divalign="center"><b>管理界面</b></div></td></tr><tr><tdheight="49"><%--分--%><palign="left"><ahref="add.jsp">增加信息</a><ahref="index.jsp">前往首</a></p><tableborder="1"cellspacing="0"width="90%"bgcolor="#F0F8FF"bordercolorlight="#000000"bordercolordark="#FFFFFF"align="center"><tr><tdwidth="12%"align="center"><strong>ID</strong></td><tdwidth="13%"align="center"><b>型</b></td><tdwidth="47%"align="center"><strong>信息名Q</strong></td><tdwidth="14%"align="center"><strong>修改</strong></td><tdwidth="14%"align="center"><strong>h除</strong></td></tr><%if(counts%pageSizes==0){pageCounts=counts/pageSizes;}else{pageCounts=counts/pageSizes+1;}inti=(intPage-1)*pageSizes;



ps=conn.prepareStatement(query);ResultSetrs1=ps.executeQuery();for(intj=0;j<i;j++)rs1.next();out.println(rs+"<BR><BR><BR>");out.println(rs.next());i=0;while(rs1.next()&&i<pageSizes){%><tr><tdwidth="12%"height="7"><palign="center"><%=rs1.getString("article_id")%></p></td><tdwidth="13%"height="7"><divalign="center"><%=rs1.getString("types")%></div></td><tdwidth="47%"height="7"><%=rs1.getString("title")%></td><tdwidth="14%"align="center"height="7"><ahref="edit.jsp?id=<%=rs1.getString("article_id")%>">修改</a></td><tdwidth="14%"align="center"height="7"><ahref="delete.jsp?id=<%=rs1.getString("article_id")%>">h除</a></td></tr><%i++;}%></table><%



}catch(SQLExceptionse1){se1.printStackTrace();}finally{}



stmt.close();conn.close();%></td></tr></table><formaction="manage.jsp"method="post">第<%=intPage%>,共<%=pageCounts%><%if(intPage<pageCounts)%><ahref="manage.jsp?strPage=<%=intPage+1%>">下一</a><%if(intPage>1)%><ahref="manage.jsp?strPage=<%=intPage-1%>">上一</a>



</form>



<P></P></body>



</html>


C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊

再现理想 发表于 2015-1-21 15:22:01

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

莫相离 发表于 2015-1-21 16:41:24

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

冷月葬花魂 发表于 2015-1-30 21:15:18

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

透明 发表于 2015-2-6 16:01:08

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

若相依 发表于 2015-2-9 22:04:02

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

老尸 发表于 2015-2-10 08:56:39

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

若天明 发表于 2015-3-1 06:03:20

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

飘灵儿 发表于 2015-3-4 11:25:42

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

深爱那片海 发表于 2015-3-5 12:33:09

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

精灵巫婆 发表于 2015-3-12 06:38:36

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

只想知道 发表于 2015-3-19 16:47:24

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

柔情似水 发表于 2015-3-23 16:08:27

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

爱飞 发表于 2015-3-24 09:24:52

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

愤怒的大鸟 发表于 2015-4-4 13:17:13

Java是一种计算机编程语言,拥有跨平台、面向对java

小女巫 发表于 2015-4-8 19:39:50

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

蒙在股里 发表于 2015-4-8 21:02:42

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

兰色精灵 发表于 2015-4-11 11:30:19

是一种使网页(Web Page)产生生动活泼画面的语言

第二个灵魂 发表于 2015-4-12 14:27:11

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

不帅 发表于 2015-4-12 17:44:12

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
页: [1] 2
查看完整版本: JAVA教程之我终究了解了JSP 的分页了