人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

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

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

更新時(shí)間:2022-08-22 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

  許多Web應(yīng)用、企業(yè)應(yīng)用涉及到長時(shí)間的操作,例如復(fù)雜的數(shù)據(jù)庫查詢或繁重的XML處理等,雖然這些任務(wù)主要由數(shù)據(jù)庫系統(tǒng)或中間件完成,但任務(wù)執(zhí)行的結(jié)果仍舊要借助JSP才能發(fā)送給用戶。本文介紹了一種通過改進(jìn)前端表現(xiàn)層來改善用戶感覺、減輕服務(wù)器負(fù)載的辦法。

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


  本文介紹的技術(shù)是把繁重的計(jì)算任務(wù)分離開來,由一個(gè)獨(dú)立的線程運(yùn)行,從而解決上述問題。當(dāng)用戶調(diào)用JSP頁面時(shí),JSP頁面會立即返回,并提示用戶任務(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;
}


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 钦州市| 雷山县| 金溪县| 加查县| 青龙| 西华县| 隆昌县| 驻马店市| 雷山县| 贺兰县| 双鸭山市| 天全县| 吴川市| 中卫市| 陇川县| 青岛市| 鸡西市| 会泽县| 德江县| 九龙坡区| 潜江市| 敖汉旗| 金坛市| 屏山县| 红河县| 留坝县| 紫阳县| 柳江县| 浙江省| 珠海市| 舟山市| 滨海县| 平泉县| 公主岭市| 古丈县| 平湖市| 百色市| 新邵县| 金湖县| 桃园县| 额敏县|