Java 在doPost()中调用方法而不降低结果页的速度

Java 在doPost()中调用方法而不降低结果页的速度,java,servlets,Java,Servlets,下面的index.html调用(以下)servet的doPost以查看url是否可用于拍卖。一切都很顺利。但是,我希望在页面重定向之后从其他类执行另外两个方法。我的问题是其他两个附加方法需要很长时间才能完成,因此我无法将它们直接放在response.sendRedirect之后,因为它们会阻塞初始响应 如何在调用其他两个需要在doPost中找到的相同字符串数据变量才能运行的方法时立即发送重定向(如下所示) index.html <html> <head> <titl

下面的index.html调用(以下)servet的doPost以查看url是否可用于拍卖。一切都很顺利。但是,我希望在页面重定向之后从其他类执行另外两个方法。我的问题是其他两个附加方法需要很长时间才能完成,因此我无法将它们直接放在response.sendRedirect之后,因为它们会阻塞初始响应

如何在调用其他两个需要在doPost中找到的相同字符串数据变量才能运行的方法时立即发送重定向(如下所示)

index.html

<html>
<head>
<title>URL Auction Search Page</title>
</head>
<body>
<CENTER>
 <FORM ACTION="/ResultServlet/Results" METHOD=GET>
   <INPUT TYPE=TEXT NAME="st">
   <INPUT TYPE=SUBMIT VALUE=Submit>
  </FORM>
</CENTER>
</body>
</html>

在单独的线程中执行这些方法

public class Results extends HttpServlet{
...
  private Thread t;
  private volatile String myResult;
...
  protected void doPost(...){
  ...
      t = new Thread(){
        public void run(){
          myResult = outsideMethod1(data);
        }
      }
      t.start();
  }
}
然后在要返回结果的方法中:

t.join();
String result = myResult;
...

同样,对于outsideMethod2,客户端是否需要outsideMethod1和outsideMethod2的结果,还是只需要在doPost操作后执行它们?其他两个方法会生成另外两个结果页-但我可以在客户端获得初始结果页时处理这些结果页。它们不必是doPost的一部分,但我需要在doPost()中创建的字符串数据,为什么不从客户端进行3次调用?初始调用将返回数据并重定向到另一个页面。该页面将使用返回的数据执行2次调用以运行其他2次操作?我也考虑过这一点,但由于数据的传递可能有点大(字符串数据),因此我更愿意在服务器端执行。另外,我可能有点不对劲,但我更喜欢在我的服务器端进行调用,因为这里的一切都是本地的,我不必担心不同的浏览器和客户端的带宽(我无法控制的外部变量)。如果有来自多个客户端的重复调用,这将是一种不正确的方法。对不起。詹姆斯是对的。您应该保留一个将客户端映射到结果的同步HashMap。
t.join();
String result = myResult;
...