仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1209|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网站制作之用缓冲手艺进步JSP使用的功能和不乱性

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:40:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。js|功能
1、概述在Web使用中,有些报表的天生大概必要数据库花很长工夫才干盘算出来;有的网站供应天色信息,它必要会见远程服务器举行SOAP挪用才干失掉温度信息。一切这统统都属于庞大信息的例子。在Web页面中到场过量的庞大信息大概招致Web服务器、数据库服务器负荷太重。JSP代码块缓冲为开辟者带来了随便地增添各类庞大信息的自在。
JSP可以在标志库内封装和运转庞大的Java代码,它使得JSP页面文件更简单保护,使得非专业开辟职员利用JSP页面文件加倍便利。如今已有很多标志库,它们大概是贸易产物,大概是源代码开放产物。但这些产物中的年夜多半都只是用标志库的情势完成底本能够用一个复杂的JavaScriptlet完成的功效,很少有产物以某种制造性的体例利用定制标志,供应在呈现JSP定制标志库之前几近不成能完成的用法。
OSCache标志库由OpenSymphony计划,它是一种创始性的JSP定制标志使用,供应了在现有JSP页面以内完成疾速内存缓冲的功效。固然已有一些供给商在供应各类情势的缓存产物,可是,它们都属于面向特定供给商的产物。OSCache可以在任何JSP1.1兼容的服务器上运转,它不但可以为一切用户缓冲现有JSP代码块,并且可以以用户为单元举行缓冲。OSCache还包括一些进步可伸缩性的初级特征,好比:缓冲到磁盘,可编程的缓冲洗新,非常把持,等等。别的,正如OpenSymphony的其他产物,OSCache的代码也在一个开放源代码允许协定之下收费刊行。
本文以一个设想的拍卖网站计划历程为例,先容OSCache的事情历程。这个设想的Web网站将包括:一个呈报比来拍卖举动的办理页面;一个功效完全、带有各类宣扬信息的主页;一个特别的导航条,它包括了用户一切还没有成交的拍卖举动信息。
2、办理页面

拍卖网站包括一个办理报表,数据库服务器必要数秒工夫才干创立如许一个报表。报表天生工夫长这一点很主要,由于我们大概让多个办理员监督体系运转情形,同时又想制止办理员每次会见时都从头天生这个报表。为了完成这一点,我们将把全部页面封装到一个使用级的缓冲标志以内,这个缓冲标志每隔1小时革新。其他供给商供应的一些产物也具有相似的功效,只是OSCache比它们做得更好。
为复杂计,我们将不外多地存眷格局成绩。在编写办理页面时,我们起首把标志库声明到场到页面:
<%@tagliburi="cachetags"prefix="cache"%>接上去我们要用cache标志来包抄全部页面。cache标志的默许缓冲工夫是1小时。
<cache:cache>....庞大的办理报表....</cache:cache>如今办理页面已被缓冲。假如办理员在页面熟成后的一个小时以内再次会见统一页面,他看到的将是之前缓存的页面,不必要由数据库服务器再次天生这个报表。
3、主页

拍卖网站的主页显现网站举动情形,宣扬那些行将停止的拍卖举动。我们但愿显现出正在举行的拍卖举动数目,以后登任命户数目,在短时间内就要停止的拍卖举动的清单,和以后工夫。这些信息有着分歧的工夫准确度请求。网站上的拍卖举动一般延续数天,因而我们能够把缓冲无效拍卖举动数目的工夫定为6个小时。用户数目的变更明显要频仍一些,但这里我们将把这个数值每次缓冲15分钟。最初,我们但愿页面中显现确当前工夫老是准确的页面会见工夫。
在主页中声明标志库以后,我们起首以不带缓冲的体例间接输入以后日期:
如今是:<%=newjava.util.Date()%>接上去,我们要显现一个清单,列出那些将在短时间内停止的拍卖举动:
<cache:cache><ul><%//机关一个包括比来拍卖举动的IteratorIteratorauctions=....while(auctions.hasMore()){Auctionauction=(Auction)auctions.next();%><li><%=auction%></li%<}%></ul></cache:cache>最初,我们但愿显现出正在举行的拍卖举动的数目,这个数字必要缓冲6小时。因为cache标志必要的是缓冲数据的秒数,我们把6小时转换成21600秒:
<cache:cachetime="21600"><%//查询数据库失掉拍卖举动总数intauctionCount=....%>本网站正在举行的拍卖举动有<%=auctionCount%>个!</cache>能够看到,我们只用大批的代码就机关出了一个带有庞大缓冲体系的主页。这个缓冲体系对页面各个部分分离举行缓冲,并且各个部分的缓冲工夫完整切合它们各自的信息变更频仍水平。因为有了缓冲,如今我们能够在主页中放进更多的内容;而在之前没有缓冲的情形下,主页中放进过量的内容会招致页面会见速率变慢,乃至大概给数据库服务器带来太重的负载。
4、导航条

假定在计划网站的时分,我们决意在右边导航条的下方显现购物车内容。我们将显现出用户所拍卖的每种商品的出价次数和以后报价,和一切那些以后用户出价最高的商品的清单。
我们使用会话级的缓冲才能在导航条中机关上述功效。把上面的代码放进模板大概包括文件,以便网站中的其他页面援用这个导航条:
<cache:cachekey="navbar"scope="session"time="300"><%//提取并显现以后的出价信息%></cache:cache>在这里我们引进了两个主要的属性,即key和scope。在本文后面的代码中,因为cache标志可以主动为代码块创立独一的key,以是我们不必要手工设置这个key属性。但在这里,我们想要从网站的其他部分援用这个被缓冲的代码块,因而我们显式界说了该cache标志的key属性。第二,scope属性用来告知cache标志以后代码块必需以用户为单元缓冲,而不是为一切用户缓冲一次。
在利用会话级缓冲时应当十分当心,应当分明:固然我们可让庞大的导航条削减5倍或10倍的服务器负载,但它将极年夜地增添每一个会话所必要的内存空间。在CPU才能方面增添大概的并发用户数目无疑很幻想,可是,一旦在内存撑持才能方面让并发用户数目下降到了CPU的限定之下,这个计划就不再幻想。
正如本文后面所提到的,我们但愿从网站的其他部分援用这个缓冲的代码块。这是由于,当一个用户增添了一个供拍卖的商品、大概出价竞购其他用户拍卖的商品时,我们但愿革新缓冲,使得导航条下一次被读取时具有最新的内容。固然这些数据大概由于其他用户的举动而改动,但假如用户在网站上实行某个举措以后看到本人的清单仍未改动,他大概会感应十分狐疑。
OSCache库供应的flush标志可以革新缓冲内容。我们能够把上面的代码到场各处理用户举措且大概影响这一地区的页面当中:
<cache:flushkey="navbar"scope="session"/>当用户下次会见它时,navbar缓冲块将被革新。
至此为止,我们这个示例网站的机关事情已完成且能够入手下手运转。上面我们来看看OSCache的非常处置才能。即便缓冲的内容已取消,好比在缓冲块内呈现了Java非常,OSCache标志库仍然同意我们用编程的办法显现这些内容。有了这类非常把持功效,我们能够撤除数据库服务器和Web服务器之间的毗连,而网站仍可以持续运转。JSP1.2标准引进了TryCatchFinally接口,这个接口同意标志自己检测和处置Java非常。因而,标志能够分离这类非常处置代码,使得JSP页面更复杂、更富有层次。
OpenSymphony正在企图完成其他的缓冲机制和一个可办理性更好的主体系,它将使我们可以对缓冲利用的RAM和磁盘空间举行办理。一旦有了这些功效,我们就可以够进一步进步网站的呼应速率和牢靠性。
【停止语】OSCache可以匡助我们机关出更丰厚多彩、具有更高功能的网站。有了OSCache标志库的匡助,如今我们可以用它办理一些影响网站呼应才能的成绩,好比会见量岑岭期、数据库服务器负荷太重等。



你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。
小魔女 该用户已被删除
沙发
发表于 2015-1-21 12:30:52 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
莫相离 该用户已被删除
板凳
发表于 2015-1-26 14:45:49 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
金色的骷髅 该用户已被删除
地板
发表于 2015-1-31 21:21:50 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
若相依 该用户已被删除
5#
发表于 2015-2-4 06:03:50 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
因胸联盟 该用户已被删除
6#
发表于 2015-2-9 16:50:26 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
飘灵儿 该用户已被删除
7#
发表于 2015-2-20 10:51:54 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-2 20:49:53 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
活着的死人 该用户已被删除
9#
发表于 2015-3-10 12:29:41 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
冷月葬花魂 该用户已被删除
10#
发表于 2015-3-17 06:22:42 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
变相怪杰 该用户已被删除
11#
发表于 2015-3-23 23:31:19 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
灵魂腐蚀 该用户已被删除
12#
发表于 2015-4-4 19:48:50 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
谁可相欹 该用户已被删除
13#
发表于 2015-4-9 15:58:30 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
再现理想 该用户已被删除
14#
发表于 2015-4-26 19:12:56 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
15#
发表于 2015-4-27 17:02:10 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
乐观 该用户已被删除
16#
发表于 2015-5-1 08:12:07 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
老尸 该用户已被删除
17#
发表于 2015-5-3 03:21:31 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
只想知道 该用户已被删除
18#
发表于 2015-5-10 18:57:41 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
愤怒的大鸟 该用户已被删除
19#
发表于 2015-6-9 09:59:11 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
若天明 该用户已被删除
20#
发表于 2015-6-12 17:57:46 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 21:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表