??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久久久久久中文字幕,超碰97在线播放,国内精品久久久久国产盗摄免费观看完整版 http://www.aygfsteel.com/Top%CF%83%E3%81%AEIf/category/5220.html一个不断成长的j2ee虫Q像锅牛一样不断往上爬。终有一天找到自已的天?.....zh-cnWed, 28 Feb 2007 07:56:09 GMTWed, 28 Feb 2007 07:56:09 GMT60WebWork2中ServletDispatchcM的serviceҎ(gu)http://www.aygfsteel.com/TopσのIf/archive/2005/12/06/22801.htmljava驉Kjava驉KTue, 06 Dec 2005 15:12:00 GMThttp://www.aygfsteel.com/TopσのIf/archive/2005/12/06/22801.htmlhttp://www.aygfsteel.com/TopσのIf/comments/22801.htmlhttp://www.aygfsteel.com/TopσのIf/archive/2005/12/06/22801.html#Feedback0http://www.aygfsteel.com/TopσのIf/comments/commentRss/22801.htmlhttp://www.aygfsteel.com/TopσのIf/services/trackbacks/22801.html    
       在web.xml文g里配|一个派遣器ServletDispatcherQ以接收所有以actionl尾的urlh。ƈq行httph调度处理.
<servlet>
   <servlet-name></servlet-name>
   <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>webwork</servlet-name>
   <url-pattern>*.action</url-pattern>
</servlet-mapping>

当ServletDispatche调度器接收到一?actionl尾的请求时Q会调用ServletDispatchecȝserviceҎ(gu)q行处理,该方法最l是创徏一个ActionProxy对象Qƈ通过执行ActionProxy中的executeҎ(gu)?BR>调用所h的Action的executeҎ(gu).之前要执行一些方法来创造条Ӟ创徏Action上下?==>从request中获得值堆栈stack===>创徏ActionProxyFactory对象Qƈ初始化一个DefaultActionProxy对象====>通过DefaultAction的构造函数调用ConfigurationManager获得当前h的Action在xwork.xml中的配置信息====>DefaultActionProxy中的prepareҎ(gu)通过创徏一个ActionInvocation对象来实现对haction的调用?BR>
AroundInterceptor拦截?->
DefaultActionInvocation中有一个数l维护了拦截机的执行序Q?BR>1、StaticParametersInterceptor, 2、ParametersInterceptor, 3、WebWorkConversionErrorInterceptor
4、ModelDrivenInterceptor 5、ExternalReferencesInterceptor
6、StaticParametersInterceptor 7、parametersInterceptor, 8、WebWorkConversionErrorInterceptor
9、ModelDrivenInterceptor 10、ValidationInterceptor
注:q里1???拦截机执行了两次Qؓ什么会执行两次?
疑问Q这里的执行序和webwork-default.xml中的<interceptors>配置有何兌?

Action ---> Ҏ(gu)Action实现相应的Action,ModelDriven接口调用基类?BR>ParametersInterceptor中:
      final Map parameters = ActionContext.getContext().getParameters();

从AroundInterceptor的context中取出页面提交字D늚名称和?然后它会先把stack.pus(modelDriven.getModel()); modelDriven.getModel()攑ֈCompoundRoot?CompounRoot是一个ArrayList)上面提到有四个拦截机执行两次Q因为第一ơ要pushq去一个空的对象,方便填|W二ơ放的是填充好的对象。也是Action中getModel()的对象。把gparameters 讄到OgnlValueStack的CompoundRoot的第一个下标中的Action里的getModel()对象里code:stack.setValue(name, value);name对应的是getModel()对应的字D,value填充的?



java驉K 2005-12-06 23:12 发表评论
]]>
Weblogic8.1实现(CMT)及spring理JTA事务 http://www.aygfsteel.com/TopσのIf/archive/2005/11/24/21302.htmljava驉Kjava驉KThu, 24 Nov 2005 08:47:00 GMThttp://www.aygfsteel.com/TopσのIf/archive/2005/11/24/21302.htmlhttp://www.aygfsteel.com/TopσのIf/comments/21302.htmlhttp://www.aygfsteel.com/TopσのIf/archive/2005/11/24/21302.html#Feedback1http://www.aygfsteel.com/TopσのIf/comments/commentRss/21302.htmlhttp://www.aygfsteel.com/TopσのIf/services/trackbacks/21302.html阅读全文

java驉K 2005-11-24 16:47 发表评论
]]>
J2EE中POJO的定?/title><link>http://www.aygfsteel.com/TopσのIf/archive/2005/11/24/21301.html</link><dc:creator>java驉K</dc:creator><author>java驉K</author><pubDate>Thu, 24 Nov 2005 08:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/TopσのIf/archive/2005/11/24/21301.html</guid><wfw:comment>http://www.aygfsteel.com/TopσのIf/comments/21301.html</wfw:comment><comments>http://www.aygfsteel.com/TopσのIf/archive/2005/11/24/21301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/TopσのIf/comments/commentRss/21301.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/TopσのIf/services/trackbacks/21301.html</trackback:ping><description><![CDATA[         POJO(plain old java Object)[译:单初始Java对象]。它?因ؓ只有set/getҎ(gu))吗?或是我们把应该把它弄得复杂点(带点业务判断)Q究竟它在我们J2EE应用中扮演一个什么样的角色呢Q一个Anemic Domain ModelQRich Domain Model, DTO, O/R mapping Entity........Q以前我的系l中POJO都是一个血的模型,只有set/getҎ(gu)Q它的职责就是把前端面的数据从formBean中{U过?用反?Q作为持久层的对象。这里POJO有两个角Ԍ一个角色是传送数据,另一个是角色是PO(持久对象)。一D|间后我发现这样做效率低下Q想像一下有些业务处理,如一个银行帐Lpojo,里面有一个金额和利息字段Q这个金额是通过一些公式计后得出来的Q开始时我们在业务层里把金额出来后set到帐户pojo金额字段里。我开始思烦把一些都是计或者纯逻辑的东西pull Up到pojo中。这时候我的pojo变成一个Domain Object。尽不是一个Rich的Domain Model,但毕竟前q了一步。再后来用到了webwork2,׃webwork2里没有了struts formBeanQ用拦截机讑ր|ModelDriven模式下我的持久Entity是一个formBean和po的结? 在ACTIO中它是一个有值的VOQ在DAO实现层变成一个PO。在q里我的pojol承了O/R Entityc,q把合适的业务层的代码都移到相应的了Pojo中,当然没有持久层的代码。这h的系l的部分pojo变成了Rich Domain Model。在Ejb下,׃话门面管理对POJO业务对象讉KҎ(gu)L重的entity bean有更高的效率和可UL性。尽Ejb下的POJO不能享受entity bean的CMP{略Q但有了spring 的IOC后,一切变得可配置了!POJOq有很重要的一个优势就是pojo中的业务可以q具体容器q行试Q在q里,pojo是血q是冲血应该取决于你的业务应用,CQ不要把单的问题搞复杂了Q但把复杂的问题分解成简单的问题一直就是我们追求的Q?img src ="http://www.aygfsteel.com/TopσのIf/aggbug/21301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/TopσのIf/" target="_blank">java驉K</a> 2005-11-24 16:46 <a href="http://www.aygfsteel.com/TopσのIf/archive/2005/11/24/21301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">º</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ժ</a>| <a href="http://" target="_blank">͸</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͭ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ں</a>| <a href="http://" target="_blank">ʻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ױ</a>| <a href="http://" target="_blank">ϳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʦ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">üɽ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>