Struts2.1的运行流程大致分为以下几个步骤:
1.用户输入URL请求,该请求被StrutsPrepareAndExecuteFilter拦截,根据welcome-file属性的设置跳转到相应的jsp页面。
2.用户在jsp页面发出的相应的处理请求。
3.该处理请求也会被StrutsPrepareAndExecuteFilter拦截,首先清理当前线程的ActionContext和Dispatcher防止内存的泄露,接下来询问ActionMapper(Action映射器)来决 定这个请求是否需要调用某个Action,由于请求一般都是以Structs2.1默认的扩展名“.action”结尾,因此StrutsPrepareAndExecuteFilter把请求的处理交给 ActionProxy(Action的代理)
4.ActionProxy通过Configuration
Manager(配置管理器)询问Structs2.1的配置文件Structs.xml,找到需要调用的Action类以及相应的命名视图和物理映射视图的映射关系
5.然后ActionProxy会创建一个ActionInvocation(Action的执行环境)的实例,并创建相应Action的实例来处理相应的请求
6.在Action执行环境中首先调用的是Structs2.1自带的一系列内部拦截器或者用户自定义的拦截器(如session过期验证级访问权限验证等),然后在调用validate()方法对表单字段进行有效性的验证,验证过程出错可以调用addFieldError方法添加字段错误信息,并跳转到相应的错误处理页面。如果验证通过这调用指定Action中的execute()。
注:本人是初学者,这是我从书中总结得到,不知道对大家有没有帮助,望大神吐槽
转载请注明出处,谢谢