Struts 第一步在干什么?
1、org.apache.struts.action.ActionServlet 是Struts Controller中最主要的部分,所有用户请求都会被发送到这里,所有的其它处理也必须从这里经过。ActionServlet是从HttpServlet中继承过来的。
当开始初始化struts的时候,process仍然会被调用,并且ActionMapping 和ActionForm会被先后初始化,mapping和form初始化后, process会被验证(包括验证上面的mapping和form)。验证失败就直接返回。
2. 环境初始化完成后,用户的请求都发送到ActionServlet中。当ActionServlet接收到HTTP request的时候,不管是doGet()或者doPost()方法,都会调用RequestProssor##process()方法处理用户请求的流程,在这个流程中,会查找ApplicationConfig,得到用户请求对应的Action,调用相应的Action来具体执行用户的请求,最后返回ActionForward,转向相应的流程。在产生ActionForward的时候,早先的版本是struts调用上面找到的Action的perform方法,但是后来的版本是调用execute方法。至此,struts已经从ActionForward中得到的需要跳转的页面内容,从而进行跳转。