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

你可能感兴趣的:(多线程,C++,c,struts,servlet)