av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

JSP編程進(jìn)度條設(shè)計(jì)實(shí)例

當(dāng)JSP調(diào)用一個(gè)必須長時(shí)間運(yùn)行的操作,且該操作的結(jié)果不能(在服務(wù)器端)緩沖,用戶每次請求該頁面時(shí)都必須長時(shí)間等待。很多時(shí)候,用戶會(huì)失去耐心,接著嘗試點(diǎn)擊瀏覽器的刷新按鈕,最終失望地離開。

本文介紹的技術(shù)是把繁重的計(jì)算任務(wù)分離開來,由一個(gè)獨(dú)立的線程運(yùn)行,從而解決上述問題。當(dāng)用戶調(diào)用JSP頁面時(shí),JSP頁面會(huì)立即返回,并提示用戶任務(wù)已經(jīng)啟動(dòng)且正在執(zhí)行;JSP頁面自動(dòng)刷新自己,報(bào)告在獨(dú)立線程中運(yùn)行的繁重計(jì)算任務(wù)的當(dāng)前進(jìn)度,直至任務(wù)完成。

一、模擬任務(wù)

首先我們設(shè)計(jì)一個(gè)TaskBean類,它實(shí)現(xiàn)java.lang.Runnable接口,其run()方法在一個(gè)由JSP頁面(start.jsp)啟動(dòng)的獨(dú)立線程中運(yùn)行。終止run()方法執(zhí)行由另一個(gè)JSP頁面stop.jsp負(fù)責(zé)。TaskBean類還實(shí)現(xiàn)了java.io.Serializable接口,這樣JSP頁面就可以將它作為JavaBean調(diào)用:

package test.barBean; 
import java.io.Serializable;
public class TaskBean implements Runnable, Serializable {
private int counter;
private int sum;
private boolean started;
private boolean running;
private int sleep;
public TaskBean() {
counter = 0;
sum = 0;
started = false;
running = false;
sleep = 100;
}
}

TaskBean包含的“繁重任務(wù)”是計(jì)算1+2+3…+100的值,不過它不通過100*(100+1)/2=5050公式計(jì)算,而是由run()方法調(diào)用work()方法100次完成計(jì)算。work()方法的代碼如下所示,其中調(diào)用Thread.sleep()是為了確保任務(wù)總耗時(shí)約10秒。

protected void work() { 
try {
Thread.sleep(sleep);
counter++;
sum += counter;
} catch (InterruptedException e) {
setRunning(false);
}
}

status.jsp頁面通過調(diào)用下面的getPercent()方法獲得任務(wù)的完成狀況:

public synchronized int getPercent() { 
return counter;
}

如果任務(wù)已經(jīng)啟動(dòng),isStarted()方法將返回true:

public synchronized boolean isStarted() { 
return started;
}

 

如果任務(wù)已經(jīng)完成,isCompleted()方法將返回true:

public synchronized boolean isCompleted() { 
return counter == 100;
}

如果任務(wù)正在運(yùn)行,isRunning()方法將返回true:

public synchronized boolean isRunning() { 
return running;
}

SetRunning()方法由start.jsp或stop.jsp調(diào)用,當(dāng)running參數(shù)是true時(shí)。SetRunning()方法還要將任務(wù)標(biāo)記為“已經(jīng)啟動(dòng)”。調(diào)用setRunning(false)表示要求run()方法停止執(zhí)行。

【編輯推薦】  

  1. JavaOne 2009第三天:微軟與Sun/Oracle攜手并進(jìn)
  2. 開發(fā)高可移植性J2ME的軟件
  3. Java虛擬機(jī)(JVM)中的內(nèi)存設(shè)置詳解
  4. Sun擬推Java軟件商店 克隆蘋果成功經(jīng)驗(yàn)
  5. 四個(gè)有害的Java編碼習(xí)慣

新聞標(biāo)題:JSP編程進(jìn)度條設(shè)計(jì)實(shí)例
文章網(wǎng)址:http://uogjgqi.cn/article/dheggeh.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流