关于struts的成员变量定义问题
对于网页传来的参数是否需要在Action里面定义对应的成员变量,还是在execute方法里面作为局部变量,在方法里面获取传递的参数呢。因为对于每个Action类Strut...
对于网页传来的参数是否需要在Action里面定义对应的成员变量,还是在execute方法里面作为局部变量,在方法里面获取传递的参数呢。
因为对于每个Action类Struts2只生成一个实例的话,那么如果多个request访问同一个Action可能会导致成员变量,他们成员变量应该是共有的才对,这样会不会造成不安全呢。因为每本教材都好像推荐写在成员变量,所以我有这样一个疑问。
我想问 在实际开发当中,是怎么处理这样的问题的。 展开
因为对于每个Action类Struts2只生成一个实例的话,那么如果多个request访问同一个Action可能会导致成员变量,他们成员变量应该是共有的才对,这样会不会造成不安全呢。因为每本教材都好像推荐写在成员变量,所以我有这样一个疑问。
我想问 在实际开发当中,是怎么处理这样的问题的。 展开
2个回答
展开全部
struts2不是单例的,struts1是单例的,
如果是使用struts2的话,不需要担心线程安全的问题,可以在action中定义form传过来的参数值。
如果是struts1+spring的话,也不需要担心此问题,只要把applicationContext.xml中的action bean的scope 设置为 prototype就可以了。这样,每次请求也会new一个新的action实例。
如果单独使用struts1的话,jsp中的参数是随着ActionForm传过来的,没必要定义成员变量,
如果是随着URL传到Action的话,那么使用request.getParameter("")方法得到的值,万万不能赋值给成员变量,否则会出现线程安全的问题。
不知道你明白没。
如果是使用struts2的话,不需要担心线程安全的问题,可以在action中定义form传过来的参数值。
如果是struts1+spring的话,也不需要担心此问题,只要把applicationContext.xml中的action bean的scope 设置为 prototype就可以了。这样,每次请求也会new一个新的action实例。
如果单独使用struts1的话,jsp中的参数是随着ActionForm传过来的,没必要定义成员变量,
如果是随着URL传到Action的话,那么使用request.getParameter("")方法得到的值,万万不能赋值给成员变量,否则会出现线程安全的问题。
不知道你明白没。
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询