仓酷云

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

[学习教程] JAVA网页设计WebWork2源码剖析续二

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。web
上面我们再来剖析另外一个拦阻器的完成ModelDrivenInterceptor,起首说说他的计划目标,我们晓得在Struts中一般有一个ActionFormBean他是用来封装哀求数据的,在WebWork2.x中这一功效失掉了进一步的发扬,他能够完成两中Action驱动形式,他们都是信息照顾者.



Property-Driven



Model-Driven







最普通的注释就是,Property-Driven经由过程属性来贯串全部MVC,而Model-Driven就是经由过程Model对象来贯串全部MVC.







他们的存在体例:Model-Drive就是自力的一个类,而Property-Driven则必需依靠于你自界说的Action类







假如我们用Model-Drive体例,那末就必需在设置文件中增加ModelDrivenInterceptor拦阻器,由这个拦阻器向我们的ModelBean中传送值,且你的Action中也必需完成ModelDriven接口,用于猎取该ModelBean,上面来看看这个拦阻器的详细完成,来做进一步的剖析,代码以下:







publicclassModelDrivenInterceptorextendsAroundInterceptor{



//~Methods////////////////////////////////////////////////////////////////



protectedvoidafter(ActionInvocationdispatcher,Stringresult)throwsException{}



protectedvoidbefore(ActionInvocationinvocation)throwsException{



Actionaction=invocation.getAction();



if(actioninstanceofModelDriven){



//判别该Action是不是完成了ModelDriven接口,假如完成了这个ModelDriven接口,他将向这个Action所对应的Model传送信息



ModelDrivenmodelDriven=(ModelDriven)action;



OgnlValueStackstack=invocation.getStack();







//用于猎取Action中的ModelBean,并压进OgnlValueStack



stack.push(modelDriven.getModel());



}



}



}



关于OgnlValueStack的详细信息请参考http://www.ognl.org







从下面的这个publicStringintercept(ActionInvocationinvocation)办法中我们能够看出一切的拦阻器都是经由过程ActionInvocation来实行调剂的,我们能够称DefaultActionInvocation为XWork1.x的调剂器,说的这里我想列位对WebWork2.x的拦阻器也有了一个也许的懂得.







既然DefaultActionInvocation是xWork1.x的调剂器,不剖析他是说不外往的,接上去我们剖析ActionInvocation的完成者DefaultActionInvocation的源码,已窥其事实











因为之前也剖析过DefaultActionInvocation的一些代码,上面则节选部分还没有剖析的代码来完成扼要的剖析







publicclassDefaultActionInvocationimplementsActionInvocation{



//在这里Result是一个接口,而ActionChainResult是他的一个完成,他的目标是用于处置ActionChain的,在这里对ActionChain做以下申明:



一般一个Action实行终了,要末是前往表单,要末前往别的一个Action,来持续实行,假如前往了Action则就构成了ActionChain举措链,然后持续实行这个新的Action,直到前往一个non-chain了局



publicResultgetResult()throwsException{



ResultreturnResult=result;



//IfwevechainedtootherActions,weneedtofindthelastresult



while(returnResultinstanceofActionChainResult){



ActionProxyaProxy=((ActionChainResult)returnResult).getProxy();



if(aProxy!=null){



ResultproxyResult=aProxy.getInvocation().getResult();



if((proxyResult!=null)&&(aProxy.getExecuteResult())){



returnResult=proxyResult;



}else{break;}



}else{break;}



}



returnreturnResult;



}



//前往Stack



publicOgnlValueStackgetStack(){



returnstack;



}







//上面的办法我就不在赘述了,我想人人就是看称号也应当能够懂得一二,假如有甚么疑问,请参考后面的剖析



protectedvoidcreateAction(){



//loadaction



try{



action=ObjectFactory.getObjectFactory().buildAction(proxy.getConfig());







}



protectedStringinvokeAction(Actionaction,ActionConfigactionConfig)throwsException{



if(proxy.getConfig().getMethodName()==null){



returngetAction().execute();







}



}



你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-21 15:22:12 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
山那边是海 该用户已被删除
板凳
 楼主| 发表于 2015-1-25 11:57:15 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-1-31 16:59:43 来自手机 | 只看该作者
是一种突破用户端机器环境和CPU
小妖女 该用户已被删除
5#
发表于 2015-2-1 19:14:44 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
蒙在股里 该用户已被删除
6#
发表于 2015-2-5 02:30:26 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
7#
发表于 2015-2-5 22:01:55 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
小女巫 该用户已被删除
8#
发表于 2015-2-12 20:23:19 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-3 06:42:18 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
冷月葬花魂 该用户已被删除
10#
发表于 2015-3-11 09:34:49 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
谁可相欹 该用户已被删除
11#
发表于 2015-3-13 00:07:23 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
活着的死人 该用户已被删除
12#
发表于 2015-3-16 23:22:38 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
只想知道 该用户已被删除
13#
发表于 2015-3-17 03:11:17 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
因胸联盟 该用户已被删除
14#
发表于 2015-3-23 17:23:15 | 只看该作者
是一种突破用户端机器环境和CPU
再现理想 该用户已被删除
15#
发表于 2015-3-24 15:42:00 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
若相依 该用户已被删除
16#
发表于 2015-3-24 18:17:13 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
飘灵儿 该用户已被删除
17#
发表于 2015-3-27 16:10:27 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
柔情似水 该用户已被删除
18#
发表于 2015-4-3 21:48:37 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
老尸 该用户已被删除
19#
发表于 2015-4-29 20:08:09 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
精灵巫婆 该用户已被删除
20#
发表于 2015-5-1 13:12:10 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 11:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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