问题:
* action是单例还是多例?怎么样证明?
Action是多例的,在构造函数中输出一句话,如果请求好几次,只输出一次,单例
如果请求很多次,输出很多次,多例
* struts2有三个类
ActionContext
ServletActionContext 建立struts2与servlet的通信的桥梁
ActionInvocation struts2总的上下文
* struts2的数据都在值栈中,怎么样保证数据的安全性?值栈的生命周期是什么?
因为ValueStack在ActionContext中,而ActionContext在ThreadLoad中,所以可以保证数据的安全性
值栈的生命周期是一次请求,当前的action,actioncontext,valuestack的生命周期是一致的
* 自己写的action是由谁调用的?
* ActionProxy和拦截器的意义?
init_DefaultProperties方法加载了default.properties配置文件
init_TraditionalXmlConfigurations();// [2]
加载了三种配置文件
struts-default.xml 只有一个
struts-plugin.xml 可能有很多个
struts.xml 只有一个
* 这三个配置文件的did一样,所以如果出现相同的选项,后者覆盖前者
* struts2容器会在classpath环境下,及jar包下找所有的struts-plugin.xml文件
Struts2静态注入
在struts的配置文件中,利用
<bean type="" name=""class="">的形式写的类都叫静态注入
当tomcat服务器启动的时候就加载了,比如:
<beantype="com.opensymphony.xwork2.util.ValueStackFactory"name="struts"class="com.opensymphony.xwork2.ognl.OgnlValueStackFactory" />
意味着在web服务器启动的时候,ValueStack接口的实现类是OgnlValueStack