Struts2由3部分组成:核心控制器(FilterDispatcher)、业务控制器和用户实现业务逻辑组件。
下面分别剖析3大机构:
①FilterDispatcher(Struts2的核心控制器),该控制器做为一Filter运行在Web应用中,负责拦截所有用户请求。
②业务控制器,就是用户实现Action的实例,继承了com.opensymphony.xwork2.ActionSupport类。通常需要在sturts.xom配置Action,如下:
<package name="common" extends="struts-default">
<action name="loginAction_*" method="{1}" class="loginAction">
<result name="admin">/jsp/sys/admin.jsp</result>
</action>
</package>
③Struts2的模型组件(
业务逻辑组件),他不会对用户的请求进行处理,而用户请求最终是由模型组件处理的,业务控制器负责中间的调度;
请求 请求转发 调用
http请求 ---------→ FilterDispatcher ----------------→ Action ---------→ 业务逻辑组件
Struts2的运行流程:
1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher接收。
3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器。