在一个名为A的Servlet中有aa()bb()方法,
我在前台页面请求aa()方法,
在执行过程中(aa方法没有执行完毕),我又立刻请求了bb()方法,
此时程序会执行bb()方法,执行完bb()方法后再来执行aa()方法。
请问如何在bb()方法中终止aa()方法的执行?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【IAM_YXQ】截止到2008-07-12 17:17:59的历史汇总数据(不包括此帖):
    发帖的总数量:11                       发帖的总分数:190                      每贴平均分数:17                       
    回帖的总数量:94                       得分贴总数量:38                       回帖的得分率:40%                      
    结贴的总数量:10                       结贴的总分数:190                      
    无满意结贴数:2                        无满意结贴分:20                       
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:90.91 %               结分的百分比:100.00%                  
    无满意结贴率:20.00 %               无满意结分率:10.53 %                  
    值得尊敬
      

  2.   

    我想实现的是终止正在上传的文件。在aa()方法里实现文件长传操作,bb()方法用来实现用户触发了“取消上传”请求的操作(如删除存储到数据库中的信息,删除上传并保存到磁盘中的文件)。
    当我进行上传请求时,在浏览器的进度缓慢移动时,触发“取消上传”请求,这时bb()方法已经执行了,但是执行完毕后又接着执行了aa()方法,所以我就想在bb()方法中终止aa()方法。
    我的设计有问题的话,那终止正在上传的文件又如何实现??
      

  3.   

    首先,你需要保证你servlet的每个object只能同时被一个线程执行,这个可以通过implement SingleThreadModel的方法来实现。我不清楚你上传文件的代码是怎样,不过你必须进行手工stream拷贝,我应该能在上传的代码里见到如下片段byte[] buffer = new byte[1024];
    int bytes = -1;
    while( (bytes = uploadStream.read(buffer, 0, 1024)) != -1 ){
        fileStream.write(buffer, 0, bytes);
    }这里是把你上传的stream拷贝到一个文件里。你可以放一个判断在这个循环里,如果你的bb()方法已经把一个标记变量修改,就终止循环,从而终止上传。