a . Action什么时候初始化?
发出对该Action的请求时,不是在读取配置文件时初始化
每个Action只会初始化一次
发出对该Action的请求时,不是在读取配置文件时初始化
每个Action只会初始化一次
b. 两个不同的jsp共享一个action类时,内存中也只有一个实例,即所有请求共享一个action实例,
Action是线程不安全的,
c. 怎样实现Action的安全编程?
1.注意不要用实例变量或者类变量共享只是针对某个请求的数据
2.注意资源操作的同步
不安全性的应用:可以统计一个action访问次数,设计一个实例变量count,在调用时加一
public class CountAction extends Action{
private int count=0;
public ActionForward execute(……)
{
synchronized(new Integer(count)) //锁定的不能是数字,应该是对象,或者修改定义private Integer count=0;可能有多个请求修改,所以加上同步
{count++;}
PrintWriter out=response.getWriter();
out.println("count="+count);
return null;
}
}