|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之!
J2EE除供应了servlet以外,还供应了大批的别的功效。Servlet开辟者们大概可贵利用这些功效,不宁愿也没偶然间用一个超越所需的年夜型J2EE服务器来交换本人的复杂的servlet。但是,根据J2EE的模块化特性,有大概将卖力特定J2EE功效的小组件整合到servlet容器里,以此来加强WEB使用程序。个中之一就是事件。有关J2EE事件的完全形貌,您能够参考Onjava上的其他三篇文章,如今只需晓得事件是资本的操纵步骤(比方:数据库),它由四个属性界说,这四个属性依据其首字母稀释为ACID:
原子性:事件的操纵,大概是全体乐成(此时提交事件),大概是全体不乐成(此时回滚事件),谓之为all-or-nothing属性。一个事件应当被视为单个事情单位,在一个事件内里相对不成能同时存在完成了的和没有完成的操纵。
分歧性:完成了的事件将资本从一个无效形态变化为另外一个无效形态。分歧性的详细例子有:数据库的参照完全性和表中的主键独一性。
自力性在事件没有提交之前,事件感化的共享资本的改动在事件以外是不成见的。自力性确保了分歧事件不会同时会见正在更新的数据。
耐久性:由事件提交的改动会永世存在。
JOTM(JavaOpenTransactionManager)是由ObjectWeb协会开辟的功效完全的且资本开放的自力的事件办理器。它供应了JAVA使用程序的事件撑持,并且与JTA(JAVA事件API)兼容。您能够在JOTMhomepage懂得到更多的具体信息。在TOMCAT(或别的Servlet容器)整合了JOTM后,JSP和servlet的开发者们就能够取得事件的上风十拿九稳的创立更多强健的web使用程序。
为了凸起事件是如何加强web使用程序的,举一个经常使用的例子,web扫瞄器与客户端交互的ATM。
ATM样例:
情形
此例对照复杂:一个客户想从ATM提款,输出了他的客户称号,john_doe;想提款数,$50。假如他的银行帐户上有充足的钱而且在ATM机上有充足的现金的话,使用程序就可以给他相称数量的现金,并从银行帐户上提出一样的数量。否则,操纵中止,而且除呈现毛病信息以外,其他都不会改动。我们无需忧虑平安成绩,只是在料想用户是不是准确受权。
这是一个十分复杂的例子,可是假如不利用事件,用其余办法实行起来将会很难。客户端操纵将会触及到两个分歧的资本:ATM和客户银行帐号。它们会主动的在使用程序计划中发生ACID成绩。比方:假如在ATM上操纵乐成而在银行帐户上却失利(大概是由于交换失利),客户将会取到钱,可是他的帐户将不会更新。关于银行来讲,这就亏年夜了。更糟的是,假如银行帐户更新了,可是因为一个毛病制止ATM传送钱,客户得不到现金,可是帐户上却提失落了这笔款。
为了避免呈现上述变乱,在你的使用程序里,你可以1)接洽两个资本,并告诉二者客户实行的一切以后操纵,2)扣问二者是不是能实行操纵,3)假如二者都批准,则哀求操纵。即便如许,此办法也不克不及谓之充足强健,由于,假如客户帐户上的钱在第二步和第三步的时分被别的一操纵提走,提款大概会失利,比方,客户帐户不克不及呈现逆差。
事件能使使用程序更复杂更强健的的地方就是:在统一事件的两个资本上实行所有的操纵的时分,它将会办理ACID的成绩(特别是原子性)。
<p>
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的 |
|