`
ccj
  • 浏览: 16000 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
uii
文章分类
社区版块
存档分类
最新评论

Action中需要注意的成员变量

阅读更多
public class testfa  extends DispatchAction{
    private int a;
    private int b;
    public ActionForward showa(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
     a=1;
     b=2;
     System.out.println(a);
     System.out.println(b);
    }
    public ActionForward showb(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
     b=3;
     System.out.println(a);
     System.out.println(b);
    }
}


如果直接执行showb方法,则a为0,如果先执行showa,再执行showb,则a=2,所以我们在使用action,特别是dispatch时,注意成员变量的清空,否则会遇到一些意外。
原因:我想可能是因为一个action就是一个Servlet,当第一次访问时实例化,之后则是一直保持状态使用,所以成员变量值得以保留,而actionform则由于系统自动调用了reset方法(socpe=request时),没有该问题。
不知道在C/S模式下如何实现Servlet
分享到:
评论
9 楼 ddandyy 2007-10-23  
struts1
8 楼 duan0175 2007-10-23  
duan0175 写道
duan0175 写道
liangguanhui 写道
struts的action是单例的
ddddddddddd
ddddddddddddddddddd
ddddddddddddd
7 楼 duan0175 2007-10-23  
duan0175 写道
liangguanhui 写道
struts的action是单例的
ddddddddddd
ddddddddddddddddddd
6 楼 duan0175 2007-10-23  
liangguanhui 写道
struts的action是单例的
ddddddddddd
5 楼 liangguanhui 2007-10-23  
struts的action是单例的
4 楼 leeking 2007-10-22  
我觉得应该是线城安全的问题,action实力只有一个,你设置的是成员变量,当然在一个方法里改变,回影响另一个方法里取该值的结果.
3 楼 lianwu 2007-10-20  
gmizr 写道
多线程并发访问的时候,清空成员变量不会起作用吧,Action中尽量避免使用类变量


这样做确实应该很好
2 楼 gmizr 2007-10-20  
ccj 写道
所以我们在使用action,特别是dispatch时,注意成员变量的清空,否则会遇到一些意外。

多线程并发访问的时候,清空成员变量不会起作用吧,Action中尽量避免使用类变量
ccj 写道
而actionform则由于系统自动调用了reset方法(socpe=request时),没有该问题。

actionform是在方法中传递的,和action的实例没关系,当然不会出现问题了
1 楼 yeshucheng 2007-10-20  
这个就是所谓的线程安全

相关推荐

    JAVA WEB框架,java网站一个模块只用写一个文件

    |___Szdw.java POJO类,对应数据库中szdw表(名字一致),里面所有成员变量都对应数据库表中一个字段。 |___SzdwServlet.java 用户自己写的servlet,在public class 上面一行有如下说明:@WebServlet(name = ...

    java 面试题 总结

    接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象...

    语言程序设计课后习题答案

    2-11 在一个for循环中,可以初始化多个变量吗?如何实现? 解: 在for循环设置条件的第一个";"前,用,分隔不同的赋值表达式。 例如: for (x = 0, y = 10; x ; x++, y++) 2-12 执行完下列语句后,n的值为多少? ...

    超级有影响力霸气的Java面试题大全文档

    接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    14.1.3 匿名类型和隐式局部变量的更多注意事项 388 14.2 集合初始化器 390 14.3 是什么使类成为集合:IEnumerable 392 14.3.1 foreach和数组 392 14.3.2 foreach和IEnumerable 393 14.3.3 ...

    Thinking in Java简体中文(全)

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和...

    java联想(中文)

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和...

    Thinking in Java 中文第四版+习题答案

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和程序...

    DragVideo,一种在播放视频时,可以任意拖拽的方案

    1.自定义的CustomViewDragHelper的初始化 ViewDragHelper一般用在一个自定义ViewGroup的内部,比如下面自定义了一个直接继承于ViewGroup的类DragvideoView,DragvideoView内部有一个mDragHelper作为成员变量: ...

    windows编程资料大全

    当在整个进程空间中需要且只需要一个这些数据的实例时,这样的静态数据标记就不适合了,为了解决这个问题,必须实现数据共享。为此得把数据放入一个特定的段地址中,然后将它们标记为共享。实现代码如下: #pragma ...

    易语言程序免安装版下载

    支持“链接后动作(post_link_action)”(参见tools\link.ini中注释) 4. 重新整理所有官方支持库的静态库,有望彻底解决链接时可能出现的符号冲突 5. 全面取消静态编译中的人为功能限制(此前有最多5个支持库同时...

    VC之美化界面篇本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:

    ① 对话框窗口中,直接将原先绑定按钮的CButton类替换成CXPButton类,或者在绑定变量时直接指定Control类型为CXPButton,如图3所示: 图3 为按钮指定CXPButton类型 ②在普通窗口中,直接创建一个CXPButton类对象...

    软件测试经典面试题 (超实用)

    13、QTP中的Action有什么作用?有几种? 6 14、TestDirector有些什么功能,如何对软件测试过程进行管理? 7 15、你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能...

    Think in Java(中文版)chm格式

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT...

    Java初学者入门教学

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和...

    JAVA_Thinking in Java

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和...

    ThinkInJava

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和...

    java 编程入门思考

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和...

    thinkinjava

    13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和...

Global site tag (gtag.js) - Google Analytics