Servlet 是B/S模式的,也就是浏览器发出请求,服务器响应。因此在另一线程返回响应是不可能的,你只能通过其它的C/S模式来进行,如使用Applet、ActionX等作客户端。

解决方案 »

  1.   

    两种办法,一种是同步的,就是servlet直到收到远程的结果才返回给客户端
    另一种异步,servlet调用后直接返回,客户端轮询结果
      

  2.   

    在servlet那段处理通讯的代码加上synchronize同步试试
      

  3.   

    现有一思路,不是是否切实可行:
    定义一同步变量b,用于判断是否是当前客户端的应答信息
    在servlet的init方法里面启动监听通讯的线程,
    通讯监听线程处理b字符串等等。
    在servlet的dopost事件中做如下处理
    String currThread=request.getparameter("test");
    while 1=1 do {
      if currThread.equals(b) {
        b:="";
        forward(...);
      }
    }