JSP編程進度條設計案例(2)
發(fā)表時間:2024-06-07 來源:明輝站整理相關軟件相關文章人氣:
[摘要]如果任務已經啟動,isStarted()方法將返回true: public synchronized boolean isStarted() { return started;} 如果任務已經完成,isCompleted()方法將返回true: public synchronized b...
如果任務已經啟動,isStarted()方法將返回true:
public synchronized boolean isStarted() {
return started;
}
如果任務已經完成,isCompleted()方法將返回true:
public synchronized boolean isCompleted() {
return counter == 100;
}
如果任務正在運行,isRunning()方法將返回true:
public synchronized boolean isRunning() {
return running;
}
SetRunning()方法由start.jsp或stop.jsp調用,當running參數是true時。SetRunning()方法還要將任務標記為“已經啟動”。調用setRunning(false)表示要求run()方法停止執(zhí)行。
public synchronized void setRunning(boolean running) {
this.running = running;
if (running)
started = true;
}
任務執(zhí)行完畢后,調用getResult()方法返回計算結果;如果任務尚未執(zhí)行完畢,它返回null:
public synchronized Object getResult() {
if (isCompleted())
return new Integer(sum);
else
return null;
}
當running標記為true、completed標記為false時,run()方法調用work()。在實際應用中,run()方法也許要執(zhí)行復雜的SQL查詢、解析大型XML文檔,或者調用消耗大量CPU時間的EJB方法。注意“繁重的任務”可能要在遠程服務器上執(zhí)行。報告結果的JSP頁面有兩種選擇:或者等待任務結束,或者使用一個進度條。
public void run() {
try {
setRunning(true);
while (isRunning() && !isCompleted())
work();
} finally {
setRunning(false);
}
}