struts1中多个请求页面访问同一个action,每次访问都会执行自己的execute方法吗
struts1中多个请求页面访问同一个action,每次访问都会执行自己的execute方法吗如果这个action中有一个count的属性我的意思是如果三个请求页面访问是...
struts1中多个请求页面访问同一个action,每次访问都会执行自己的execute方法吗
如果这个action中有一个count的属性 我的意思是 如果三个请求页面访问 是不是 会有 三个 execute方法 对count进行 改变
多个请求只使用一个 action实例 会有多个action的类吗 多个action的类能用一个action实例? 会有多个类调用自己类的execute方法吗
Person a = new Person();
Person b = new Person(); 展开
如果这个action中有一个count的属性 我的意思是 如果三个请求页面访问 是不是 会有 三个 execute方法 对count进行 改变
多个请求只使用一个 action实例 会有多个action的类吗 多个action的类能用一个action实例? 会有多个类调用自己类的execute方法吗
Person a = new Person();
Person b = new Person(); 展开
展开全部
Sturts1的Action采用的是单例模式
你可以理解为:struts1在启动的时候就为所有Action创建了实例,如果访问到,就直接取出对应的Action对象实例
所以,如果你的Action中有static变量,那么这个变量会随着Action中的改变而改变
如果你直接实例化了Action中的变量,那么这个变量也会在执行中改变
例如:
class Action extends xxxxx{
private static String str ="a"; //这个变量只要在执行中被改变,后面访问到该Action,str就不是原来的值了
private XXXDao dao = new XXXDao();//这样做也是很危险的,如果你咋Dao中关闭了数据库连接
}
你可以理解为:struts1在启动的时候就为所有Action创建了实例,如果访问到,就直接取出对应的Action对象实例
所以,如果你的Action中有static变量,那么这个变量会随着Action中的改变而改变
如果你直接实例化了Action中的变量,那么这个变量也会在执行中改变
例如:
class Action extends xxxxx{
private static String str ="a"; //这个变量只要在执行中被改变,后面访问到该Action,str就不是原来的值了
private XXXDao dao = new XXXDao();//这样做也是很危险的,如果你咋Dao中关闭了数据库连接
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用分发action 不同的参数请求不同的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Action类是单实例的,必须以“线程安全”的方式进行编程,因为控制器会令多个同时发生的请求共享同一个实例,相应的,在设计Action类就需要注意一下两点:
1.不能使用实例或静态变量来存储特定请求的状态信息,它们会在同一个操作中共享跨越请求的全局资源。
2.如果要访问的资源(如JavaBean和会话变量)在并行访问时需要进行保护,那么访问就要进行同步。
你可以扩展Action类或使用内置的Action类
如DispatchAction ForwardAction 或LookupDispatchAction类
1.不能使用实例或静态变量来存储特定请求的状态信息,它们会在同一个操作中共享跨越请求的全局资源。
2.如果要访问的资源(如JavaBean和会话变量)在并行访问时需要进行保护,那么访问就要进行同步。
你可以扩展Action类或使用内置的Action类
如DispatchAction ForwardAction 或LookupDispatchAction类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询