Struts2之struts2源码分析

一、学习案例:struts2讲到这基本上可以结束了。不知道大家有什么感觉呢,反正我是都忘了,你呢。别说你都记住了。如果真是记住了,那好,请在本文下方留下大名和照片,我要贴在床头,每日加以膜拜。呵呵。回到正题,struts2一些基本的东西,在之前的文章基本都解释,并配上项目演示了。不是说,struts2的博文结束了,你的学习就结束了,我也说了,我都忘了,你如果不忘,可真就不是一般人了。就像张三丰当年传太极与张无忌一样,正常人学东西都这样的。忘了就复习呗。好了,接下来还有一章都是关于struts2源码分析,有兴趣的朋友可以上手操作下。当然接下来就该学习hibernate了,这是我之前学习框架的路线,感觉还是有一定好处的,所以下一个目标就是hibernate

 

二、案例分析:关于struts2源码分析,我理所当然的从拦截器开始,在web.xml中我们就配置的拦截器,还有印象的吗,之前,我也说过,struts2有很多东西都是依赖拦截器实现的。所以我们从StrutsPrepareAndExecuteFilter下手。

 

a)首先,大家打开文档查看一个接口,ActionProxyAction代理,关于代理模式的东西,大家可以自行百度了解。我们可以看见它有execute()方法,跟action中一样的形式,其作用大家借助有道看下吧,我的四级还没过呢,不敢给大家翻译,呵呵。大概意思就是action中execute()的执行就是它进行控制的。

 

b)还有一个getMethod(),大概意思就是获取我们在struts.xml中的action上面配置的method,如果不为null,则执行,为null则执行默认的execute()。

 

c)当然他只是个接口,框架实际用的则是它的实现类StrutsActionProxy。它只提供了两个方法:execute() ,prepare() ;大家了解下就行,不做过多解释。

 

d)好了,接下来我们看StrutsPrepareAndExecuteFilter,学习这个类,我们就要使用debug查看了。还不知道debug是干嘛的,赶快去问度娘。

 

e)它在org.apache.struts2.dispatcher.ng.filter下面,我们在myeclipse下打开。

 

f)我们找到init()方法,在里面的try下面第一条语句加个断点。然后启动tomcat,这里启动是用debug启动的,正常启动没办法进行debug的。

 

g)我们先清空控制台输出的内容,然后按F6直到控制台有内容输出,然后停住查看输出日志。

 

h)当执行到dispatcher = init.initDispatcher(config);这条语句时,三个配置文件都加载了。所以我们在语句前面加个断点,重启按F5进入查看。

 

i)我们发现return之前有dispatcher.init();这样一句话,所以我们接着按F5进去查看。

 

j)我可以挨个进行查看,当查看到init_TraditionalXmlConfigurations(); 时,我们可以看到 configPaths = DEFAULT_CONFIGURATION_PATHS;,我们按着ctrl点击去可以看到private static final String DEFAULT_CONFIGURATION_PATHS = "struts-default.xml,struts-plugin.xml,struts.xml";现在知道为什么tomcat启动时加载配置文件的顺序的来由了吧。当然接下来无非就是解析配置文件了。

 

三、经验之谈:

a)学习知识不要怕忘,正常人都是会忘得,忘了再复习就是了。等你复习个三五遍时,你就会成为大牛了。呵呵,开个玩笑。

b)学习语言尤其是需要耐心和细心的。初学者很容易犯错误,有时候一个问题整个三四个小时都是常事,所以要有耐心,细心就可以减少不必要的麻烦。我写博文的目的就是跟大家分享我的学习经验,同时,也是为了让大家避免一些不必要的麻烦和少走一些弯路。别说哥高大上哦,哥只是为计算机行业贡献自己的一份力量。嘿嘿。说的有点高大上了。好了,今天就这些,明天还有一章关于struts2的,到时会及时发布的。

 

四、参考项目:无。

 

五、每日一乐:

老公在写给我的第一封情信里说:每次见到我就象心里有个小兔子到处乱撞。

如今我们结婚5年了,心血来潮和这厮撒娇:老公,你心里的小兔子呢?

老公:早撞死了

 

最终解释权归找合伙人(www.23hhr.com)所有,转载请注明出处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值