前言:此文章为本人复习Struts2的一个学习记录,如果有什么错误的地方可以留言讨论,当前Struts2更新到了2.5.16更新了不少东西,支持JSR303,debug标签只能在dev mode环境下面显示等等,看官们如果有需要可以移步下面链接因为本次测试不会涉及到这些:https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.16 。
IDE: eclipse Neon ; Struts2 version : 2.3.16
下面按照Eclipse Debug结合Struts2官方给出的流程图来进行一步步的解析,其中涉及到众多的类因此只会根据主流程来描述:
第一步:HttpServletRequest进入到StrutsPrepareAndExecuteFilter(图上ActionContextCleanUp这个类在集成SiteMesh才有用的其余时候可以不管)
流程图上的FilterDispacther即在web.xml中配置的filter:StrutsPrepareAndExecuteFilter这个也是Struts2的核心(下面提到的该类指向这个