这样的JSP可能会编译通过吗?!?!

解决方案 »

  1.   

    刚才贴的代码的确有点问题。我把改好的贴出来,功大家参考,呵呵<%
    //test.jsp String userID = request.getParameter("userID");
    WorkerThread worker = new WorkerThread(userID);
    %><%!
    public class WorkerThread implements Runnable {
    private boolean done;
    private Thread kicker;
    private String extendedis_code; public WorkerThread(String stExtendedis_code) {
    extendedis_code = stExtendedis_code;
    done = false;
    kicker = new Thread(this);
    kicker.start(); } public boolean isDone() {
    return done;
    } public void run() {
    try {
    for(int i = 0;i<10;i++){
    Thread.sleep(1000);
    System.err.println(extendedis_code+ i);
    }
    done = true;
    }
    catch(InterruptedException e) {}
    finally {
    kicker = null;
    }
    }
    }
    %>
      

  2.   

    这样做的原因主要是页面里有些动作非常耗时间,比如说大量写数据库的操作。用多线程我就可以把这些动作和基本的页面显示分开,提高点浏览的速度拉。呵呵,刚接触JSP不久,希望大家多多指教。
      

  3.   

    你这么做是不可能实现你需要的东西的。虽然我没有去实地运行你的程序(抱歉,手头没有环境)但是你想做的事情不需要多线程就能实现的。使用多线程除了给自己找麻烦以外没有什么意义。简单的方法如下:
    两个页面:
    1. Waiting.jsp显示"Please Wait"之类的信息,并转向第二个JSP
    2. 真正工作的页面,设置autoFlush="false",然后就去干你的漫长的工作,最后显示结果。由于autoFlush="false",因此第二个页面直到所有的操作完成前是不会出现的,而是一直显示第一个页面,这样你就完成了你的需求了。