日期:2014-05-18  浏览次数:20744 次

这个问题是否需要多线程和service??
首先,有两个tomcat服务,比如a和b,先要进行如下操作:

在服务a,用户填写完信息,点击"提交"按钮,表单提交至一个servlet,处理完后返回,
可能是这样的代码:
Java code

...
String pkid = request.getParameter("pkid");
someBean.save(pkid);
response.redirect("index.jsp");//返回首页
...



现在,我希望用户在点击“提交”按钮后,同时传递一个参数给服务b上的一个servlet做另外一些操作,但是此操作对用户透明,就是用户点击“保存”后就直接返回至index.jsp,(他不能察觉我们还让服务b做了另外一些操作)。

我该怎么做?或许会如下这样:
Java code

...
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做事情。

谢谢。




------解决方案--------------------
关注 帮顶 免沉
------解决方案--------------------
mark
------解决方案--------------------
这需要两个服务器相互配合。浏览器提交到 a,处理完后可以用 response.sendRedirect 跳转到 b,b 处理完后再用 response.sendRedirect 跳转到 a 的 index.jsp 即可。
------解决方案--------------------
response.redirect("index.jsp");//返回首页
??
 这不是jsp代码。
------解决方案--------------------
不需要,通过javascript和隐藏iframe可以轻松实现

主页面post到一个servlet
隐藏iframe中的表单post另外一个参数到另一个servlet

呵呵
------解决方案--------------------
服务器端在处理完自己的事情后,启动一个线程,去处理另一个服务器的操作,当前线程返回,不影响用户操作。


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