文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程JSPJSP编程进度条设计实例
精品推荐
特别推荐
·什么是 JSP 技术?
·JSP简介
·JSP数据库操作例程
·新手入门:学习JSP的经典的入门学习资料
·由浅入深学习动态网页制作PHP的编程与应用
·输入汉字自动转为拼音(jsp实现方式)
·经验分享 JSP程序员完全蜕变手册
·JSP实战:JBuilder2005中创建数据库表
·新手入门:JSP基本语法与简单表单处理
·使用技巧:在JSP页面中的应用JavaBean
热点TOP10
·水晶报表的jsp实现
·对于JSP中表单数据存储的一种通用方法
·用JSP+JavaScript打造二级级联下拉菜单
·用JSP实现数据库图片的存储与显示实例
·struts基本知识:谈JSP与XML的交互
·对JSP数据库连接类使用方法的详细讲解
·输入汉字自动转为拼音(jsp实现方式)
·实例解析 在Eclipse3.2上部署JSP全过程
·实例讲解在JSP开发中的对象和范围属性
·配置Eclpise+Tomcat实现JSP编写与部署

JSP编程进度条设计实例

日期:2008年6月10日 作者:清风网络学院 查看:[大字体 中字体 小字体]


许多Web应用、企业应用涉及到长时间的操作,例如复杂的数据库查询或繁重的XML处理等,虽然这些任务主要由数据库系统或中间件完成,但任务执行的结果仍旧要借助JSP才能发送给用户。本文介绍了一种通过改进前端表现层来改善用户感觉、减轻服务器负载的办法。

当JSP调用一个必须长时间运行的操作,且该操作的结果不能(在服务器端)缓冲,用户每次请求该页面时都必须长时间等待。很多时候,用户会失去耐心,接着尝试点击浏览器的刷新按钮,最终失望地离开。

本文介绍的技术是把繁重的计算任务分离开来,由一个独立的线程运行,从而解决上述问题。当用户调用JSP页面时,JSP页面会立即返回,并提示用户任务已经启动且正在执行;JSP页面自动刷新自己,报告在独立线程中运行的繁重计算任务的当前进度,直至任务完成。

一、模拟任务


 

  首先我们设计一个TaskBean类,它实现java.lang.Runnable接口,其run()方法在一个由JSP页面(start.jsp)启动的独立线程中运行。终止run()方法执行由另一个JSP页面stop.jsp负责。TaskBean类还实现了java.io.Serializable接口,这样JSP页面就可以将它作为JavaBean调用:


 

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包含的“繁重任务”是计算1+2+3…+100的值,不过它不通过100*(100+1)/2=5050公式计算,而是由run()方法调用work()方法100次完成计算。work()方法的代码如下所示,其中调用Thread.sleep()是为了确保任务总耗时约10秒。


 

protected void work() {
    try {
        Thread.sleep(sleep);
        counter++;
        sum += counter;
    } catch (InterruptedException e) {
        setRunning(false);
    }
}
 
  status.jsp页面通过调用下面的getPercent()方法获得任务的完成状况:


 

public synchronized int getPercent() {
    return counter;
}

如果任务已经启动,isStarted()方法将返回true:

public synchronized boolean isStarted() {
    return started;
}
 


 

  如果任务已经完成,isCompleted()方法将返回true:


 

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



[1] [2] [3] [4] [5] [6] 下一页 




上一篇:始料未及,谁在控制电脑重新启动

下一篇:用WebWork、JSP、Velocity建立注册页面

相关文章:
·Photoshop CS3合成实例:人间天堂
·DataList嵌套实例
·如何建立一个网站?规划、设计、目的、原则、宣传
·Photoshop实例:制作超酷影片画面场景
·综合实例:PS洗衣粉包装设计印刷全攻略
·3DsMAX教程 设计叶片上的精致三维蜻蜓
·Photoshop精细抠像实例
·几何图形英文字体创意设计及应用作品欣赏
·英文字体创意设计及应用作品欣赏
·PS初学者实例教程 烫金字的制作
相关软件:
·C语言程序设计
·Dreamweaver 网页设计
·中文版Excel 2003实例与技巧
·美工设计教程
·Photoshop CS经典创意设计200例
·CorelDraw12 入门与实例(图文教程 菜鸟先飞系列教材)
·Photoshop CS中文版平面设计师标准案例教程
·AutoCAD2002入门与实例详解
·Windows环境下32位汇编语言程序设计
·颐家IDO在线互动设计软件

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot