...servlet..(..){doGet(){
  jump();
}public void jump(){
    int flag=Integer.parseInt(request.getParameter("flag"));//可以正常取到值
    Records records=new Records();
    request.setAttribute("records",records);
    if(flage==1){}
    else{
       stock();
}
}public void stock(){
    int num=0;
    int num=Integer.parseInt(request.getParameter("flag"));//为什么取不到
    request.getAttribute("records");//同样取不到
    
}
 
}为什么取不到上面的值?函数之间传递后丢失了吗?
谢谢

解决方案 »

  1.   

    值不是函数之间传递而丢失的,你要明白request这个对象的周期是短暂的,它周期是否在两个函数之间,什么是request及它的用法。
      

  2.   

    应该是可以取到的吧,这个时候request生命周期还没有消失呢。
      if(flage==1){} // 是不是这个判断又问题了 应该是flag吧 不是flage
        else{ 
          stock(); 
      

  3.   

    1) int num=Integer.parseInt(request.getParameter("flag"));”
      这里可以得到值的。 2) request.getAttribute("records");//同样取不到 
      这里显然不行,records只是局部变量。
      

  4.   

    对于request请求,当有参数传递到另一页面时,这些参数会保存到另一页面的内存块中,用request.getParameter可以获得,对于getParameter()是client和server两端传递参数的获得方法,面getAttribute()是server端同部重定向传递参数的获得方法...得不到值不可能是因为丢失了的,那些参数已经到了这个内存块进行保存了的...自己再检查下