一个jsp后台的运算比较耗时 
如果进入该弹出jsp后30秒后运算因故仍未完成 
会用提示用户超时的页面填充该页面而非显示正常页面 
如何用线程实现呢 
谢谢 思路是 
在因webservice call运算时间较长的a.jsp开头 
在session里设一个Boolean的值,比如false 
在最后的sendRedirect(c.jsp)之前 
在session里设true 关键问题在于如果新开一个thread 
在thread中sleep(30*100) 
sleep后看session中的boolean值 
来是否决定去error页面 但是问题出现 
1 该thread如何能sendRedirect或forward到一个页面? 
是否要继承Servlet 
2 如果已经到了出错页面 
后台的费时操作进行完了 
运算出来的结果还不能再次填充出错页面出来 
所以有必要把进行操作的jsp线程给stop掉 
因为这里的操作是写在jsp而非servlet里的 
但是现在Thread好像不能stop掉 所以有问题 
期盼大牛指点 
谢谢

解决方案 »

  1.   

    个人觉得最好在ui界面(jsp)上直接调用webservice,axis的说明里也是这么说的,因为这个的确有时候比较耗时。
    如果真要在jsp里面调用的话,又不想等太长的时间,其实没必要这么麻烦。如果用axis做客户端,call里面有个setTimeout方法,设置超时时间,然后再在jsp捕获超时异常,应该实现起来简单一点吧。
      

  2.   

    您好
    谢谢您的回复
    的确是axis webservice call
    看了您的回复深受启发
    我去看看Call的参数
    因为我是axis的新手
    只是把功能实现了
    具体怎么实现的还没有仔细看还有个问题是该jsp页面调用了3~4个axis call
    而用户的需求是总体上超时30秒显示出错页面
    这个怎么个处理法比较好呢?