struts2框架运行流程原理



struts2框架运行流程原理

啥都不说,先上图~
struts2框架运行流程原理图片描述



第一步:判断是否需要struts2管理

请求到来,首先经过过滤器(以下简称),经过内部的方法判断后确认是否需要struts2框架进行处理(方法是用来判断请求是否需要struts2处理,如果需要,那么由来接管,通过配置管理我们可以找到我们的struts.xml,然后进入真正做事的Action);


第二步:获取核心配置文件信息

进入动态代理中,由进行读取核心配置文件,其目的是从核心配置文件中获得请求所需要的action方法的配置信息(例如是否存在此action、action访问路径等信息);


第三步:请求相关的action信息交给拦截器组

将在核心配置文件中查询到的相关信息通过反馈给动态代理对象,由动态代理对象将此信息传递给;


第四步:经过拦截器过滤获得String类型的结果

就是一套拦截器的集合,在这个里面有着默认的20个拦截器,可以在文件中查看到,如下图所示:
拦截器的集合图片描述
经过一系列的拦截器过滤后,获得一个String类型的结果(这个string类型的结果就是我们在action类中设置的结果返回值,一般我们都是设置成的;


第五步:根据String类型的返回结果与核心配置文件中的相匹对

将获得的结果返回值交给核心配置文件中的配置标签,在配置标签中有一个标签,获得的返回值名称要与标签中的name值一致,然后调用标签中指定的方法或者跳转到相应的页面;
返回结果图片描述


第六步:再次经过拦截器将最终结果返回给客户

再次经过从内而外的层层拦截器的过滤后将返回的结果响应给客户;


这就是Struts2的工作原理流程~


《END》