1.action创建模式
servlet:是一个单例控制器
struts2:非单例模式,每个请求独享一个action实例对象(每一次请求都new一个action对象)
2.action的生命周期
生命周期为一个请求,请求到来时创建,请求结束后销毁。
3.action的创建方式:
action有三种创建方式:action接口,ActionSupport父类,POJO
其中ActionSupport是Action的实现类(适配器)
Action中的默认执行方法:
public String execute(){
…
}
即 如果配置中<action name=”xx” class=”xx”><action>
没有制定method的值的时候,则默认执行execute方法。
补充(适配器模式):
ActionSuport类继承Action接口使用了适配器模式思想,适配器模式如下(个人理解):
适配器模式是解决了类继承接口必须强硬的继承其所有方法(包括不用的),造成使用不便,而适配器模式则通过创建一个中间类继承这个接口,这样自定义类就可以继承这个中间类,从而不必要集成接口中不需要的方法。例如:
interface A{
a1();
a2();
a3();
a4();
a5();
a6();
}
我如果想自定义一个类来继承这个接口,但我只系要使用a1()这一个方法,直接继承势必会造成很大的麻烦,单加一个中间类就可以改变:
class ASupport implements A{
a1();
a2();
a3();
a4();
a5();
a6();
}
接下来创建自定义类时,继承中间类,喜丧有什么方法就些什么方法,灵活方便。
class aa extends ASupport{
a1(){
...
}
}