struts2运行原理
1、客户端向Servlet容器(例如Tomcat)发送一个请求
2、这个请求经过一系列的过滤器(Filter)
3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action
4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6、ActionProxy创建一个ActionInvocation的实例
7、ActionInvocation在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是jsp或者FreeMarker的模版
开发Action有几种模式,Action的作用是什么?
有三种模式:
1)实现Action接口
2)继承ActionSupport类
3)普通的Java类 (体现Struts2的设计理念:表示action是非侵入设计,我的Acton不需要框架的支持,与框架减
耦,可以脱离框架而存在(Struts2的设计理念))
Action的作用:
1)封装工作单元
2)数据转移的场所
3)返回相应视图结果的字符串