JSP实现多线程的问题请教 这样的JSP可能会编译通过吗?!?! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚才贴的代码的确有点问题。我把改好的贴出来,功大家参考,呵呵<%//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; } }}%> 这样做的原因主要是页面里有些动作非常耗时间,比如说大量写数据库的操作。用多线程我就可以把这些动作和基本的页面显示分开,提高点浏览的速度拉。呵呵,刚接触JSP不久,希望大家多多指教。 你这么做是不可能实现你需要的东西的。虽然我没有去实地运行你的程序(抱歉,手头没有环境)但是你想做的事情不需要多线程就能实现的。使用多线程除了给自己找麻烦以外没有什么意义。简单的方法如下:两个页面:1. Waiting.jsp显示"Please Wait"之类的信息,并转向第二个JSP2. 真正工作的页面,设置autoFlush="false",然后就去干你的漫长的工作,最后显示结果。由于autoFlush="false",因此第二个页面直到所有的操作完成前是不会出现的,而是一直显示第一个页面,这样你就完成了你的需求了。 按钮不会失效。。。 javaScript中事件问题 JSP的路径问题 怎么使用datasourse配置数据库连接啊?哪位高手指点下? 如何将struts2项目导入到MyEclipse里呢~ 怎么更改mysql的编码? 关于集群,想问一下怎么解决文件上传的问题? 请帮帮忙了(JSP问题) 功课做足,j2sdk与Tomcat5的配置还是差最后一步 有关weblogic6.1与Tomcat4的问题,高分请教,再现等! 毕业设计做完了,散分罗 一个servlet的问题
//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;
}
}
}
%>
两个页面:
1. Waiting.jsp显示"Please Wait"之类的信息,并转向第二个JSP
2. 真正工作的页面,设置autoFlush="false",然后就去干你的漫长的工作,最后显示结果。由于autoFlush="false",因此第二个页面直到所有的操作完成前是不会出现的,而是一直显示第一个页面,这样你就完成了你的需求了。