首先,有两个tomcat服务,比如a和b,先要进行如下操作:在服务a,用户填写完信息,点击"提交"按钮,表单提交至一个servlet,处理完后返回,
可能是这样的代码:...
String pkid = request.getParameter("pkid");
someBean.save(pkid);
response.redirect("index.jsp");//返回首页
...
现在,我希望用户在点击“提交”按钮后,同时传递一个参数给服务b上的一个servlet做另外一些操作,但是此操作对用户透明,就是用户点击“保存”后就直接返回至index.jsp,(他不能察觉我们还让服务b做了另外一些操作)。我该怎么做?或许会如下这样:...
String pkid = request.getParameter("pkid");
someBean.save(pkid);
doOtherBy_TomcatB(pkid);//让服务b作些操作!!!
response.redirect("index.jsp");//返回首页
...
这样,至少要等到doOtherBy_TomcatB(pkid);执行完后,才能返回,用户会受影响。
有什么好点的办法吗??此外,doOtherBy_TomcatB(pkid);这个是否需要用到service的东西?不用的话我们将无法在服务a上让服务b做事情。谢谢。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【matrix1984】截止到2008-07-04 16:04:21的历史汇总数据(不包括此帖):
    发帖的总数量:34                       发帖的总分数:910                      
    结贴的总数量:30                       结贴的总分数:850                      
    无满意结贴数:1                        无满意结贴分:10                       
    未结的帖子数:4                        未结的总分数:60                       
    结贴的百分比:88.24 %               结分的百分比:93.41 %                  
    无满意结贴率:3.33  %               无满意结分率:1.18  %                  
    楼主加油
      

  2.   

    这需要两个服务器相互配合。浏览器提交到 a,处理完后可以用 response.sendRedirect 跳转到 b,b 处理完后再用 response.sendRedirect 跳转到 a 的 index.jsp 即可。
      

  3.   

    没有影响。注意 b 服务器只是发送一个 redirect,并没有发送页面给浏览器。
      

  4.   

    response.redirect("index.jsp");//返回首页
    ??
     这不是jsp代码。
      

  5.   

    不需要,通过javascript和隐藏iframe可以轻松实现主页面post到一个servlet
    隐藏iframe中的表单post另外一个参数到另一个servlet呵呵
      

  6.   

    服务器端在处理完自己的事情后,启动一个线程,去处理另一个服务器的操作,当前线程返回,不影响用户操作。
    OVER,你的想法是正确的。
      

  7.   

    至于怎么在新的线程里调用另外一个服务器,你可以用HttpURLConnecion 进行网页数据的模拟提交。参考这个
    http://www.java2000.net/viewthread.jsp?tid=302
      

  8.   

    怕复杂,干脆就在index.jsp页面中写个js代码。判断在index.jsp页面完全打开N秒后直接调用request传递过来的pkid,让index.jsp隐式调用。此时选择AJAX不错。
      

  9.   

    问题已解决,大概是这样:服务a的一个servlet负责处理完保存信息信息后,用TimerTask在一段时间后去访问服务b的service,此时servlet已返回至index.jsp.
    因此,java2000_net的回答是正确的.也感谢其他人的回答.