java 进度条jsp,jsp进度条_jsp技巧

开始页面:start.jsp

状态页面:status.jsp

JSP进度条

setTimeout(“location=status.jsp”, 1000);

JSP进度条

结果:

%

CELLPADDING=0 CELLSPACING=2>

percent; i -= 10) { %>

正在执行

完成

尚未开始

已停止

停止页面:stop.jsp

业务逻辑bean:TaskBean.java

package progress;

import java.io.Serializable;

/**

* 首先我们设计一个TaskBean类,它实现java.lang.Runnable接口,

* 其run()方法在一个由JSP页面(start.jsp)启动的独立线程中运行。

* 终止run()方法执行由另一个JSP页面stop.jsp负责。

* http://blog.knowsky.com/

* TaskBean类还实现了java.io.Serializable接口,

* 这样JSP页面就可以将它作为JavaBean调用

* */

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;

}

//如果任务正在运行,isRunning()方法将返回true:

public synchronized boolean isRunning() {

return running;

}

/**

* SetRunning()方法由start.jsp或stop.jsp调用,

* 当running参数是true时。SetRunning()方法还要将任务标记为“已经启动”。

* 调用setRunning(false)表示要求run()方法停止执行。

* */

public synchronized void setRunning(boolean running) {

this.running = running;

if (running) {

started = true;

}

}

//任务执行完毕后,调用getResult()方法返回计算结果;如果任务尚未执行完毕,它返回null:

public synchronized Object getResult() {

if (isCompleted()) {

return new Integer(sum);

}

else {

return null;

}

}

/**

* 当running标记为true、completed标记为false时,

* run()方法调用work()。在实际应用中,run()方法也许要

* 执行复杂的SQL查询、解析大型XML文档,或者调用消耗大量

* CPU时间的EJB方法。注意“繁重的任务”可能要在远程服务器

* 上执行。报告结果的JSP页面有两种选择:或者等待任务结束,或者使用一个进度条。

* */

public void run() {

try {

setRunning(true);

while (isRunning() && !isCompleted()) {

work();

}

}

finally {

setRunning(false);

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

覆盖php配置文件,配置 – 用另一个文件覆盖php-fpm池配置值

必须自定义新服务器的php-fpm池配置,我想知道是否有可能/允许/建议有一个新的池文件,该名称在原始文件之后按字母顺序排列,其中只有值覆盖初始配置.原始配置位于/etc/php/7.0/fpm/pool.d,名为www.conf.看来,根据与安装相关的页面,工程师直接修改原件(保存初始值的副本).例如.[w…

子主题function php,php – 带有依赖项的子主题

我正在尝试创建一个儿童主题.父主题有一个style.css和all,我正在查看wp_enqueue_style()函数,它说你可以包含依赖项.这意味着主题自己的style.css可以是活动的,而在我的子主题中,如果我在style.css中指定相同的规则,它应该覆盖它.但依赖是一个句柄数组.我如何找到这些手柄&…

matlab节点导纳阵求逆,关于利用矩阵稀疏技术求解节点导纳矩阵的MATLAB编程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求大神帮忙看看这个程序,解释一下!%形成节点导纳矩阵%考虑参考节点%考虑互感支路function [d_g,d_b,u_g,u_b]calyy(itoi,noels_hgln,noelsnum_hgln,bs_noels,bs_cp,gb_hgln,gb_noels,gb_cp,lv_bs,lv_hgln,lv…

mysql还原txt表的字段结构,mysql 修改表结构(转)

1.增加一个字段(一列)alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值例如:alter table mybook add column publish_house varchar(10) default ;2.更改一个字段名字(也可以改变类型和默认值)alter table tabl…

python操作json字符串,超详细的Python文件操作知识

来自:CSDN,作者:南枝向暖北枝寒MA链接:https://blog.csdn.net/mall_lucy/article/details/104547365【导语】:python进行文件操作,在日常编程中是很常用的。为了方便大家,这里对各种文件操作的知…

php头尾分离,laravel怎么做模板的头尾分离

关注博主,每天分享项目实战经验1.首先找到页面的公共部分,放在layouts这个目录下的home.blade.php2.设置内容区域yield(content)3.在其他页面使用模板引擎,先继承,然后在使用section即可extends(layouts.home)section(content)I a…

oracle11g备份出错,Oracle 11g备份导入12c错误

Oracle 11g备份导入12c错误Oracle11g:用户名:FJCPP 表空间:FYSOFT_DATA01 临时表空间:FYSOFT_DATA01导入:expdp FJCPP/FJCPP DIRECTORYdump_dir DUMPFILEFJCPP_20190717_1517_137.dmp logfileFJCPP_20190717_1517_137.…

matlab数字图像处理课程设计报告,数字图像处理课程设计实验报告.doc

数字图像处理课程设计实验报告数字图像处理课程设计题 目:数字图像处理及Huufman(或小波变换)编码仿真实现学生姓名:学 院:信息工程学院系 别:电子信息工程系专 业:电子信息工程班 级:电子指导教师&#xf…

oracle大于条件,oracle中sql语句中的in的条件数量大于1000有问题

oracle中sql语句中的in的条件数量大于1000有问题oracle中sql语句中select * from t_Test t where t.Id in(1,2,3......)/*数量不能大于1000个*/解决方法 分割成多次in 然后再或上 如 select * from t_Test t where t.Id in(1,2,3......800) or t.Id in(801,802,803......13…

oracle ora-16003,ORA-31600错误分析

作者:guoge[more]今天在对9i数据库做export时,出现如下错误:E:>exp system/manager filebackbill.dmp ownerbackbillExport: Release 9.2.0.4.0 - Production on Thu Nov 18 14:42:11 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights…

探寻FPGA技术的广泛应用与未来前景

目录 1. FPGA的基础 2. FPGA的工作原理 3. FPGA的优势 3.1 灵活性 3.2 快速开发周期 3.3 高性能 4. FPGA的应用领域 4.1 通信系统 4.2 图像处理 4.3 嵌入式系统 4.4 科学研究 5. FPGA的未来展望 1. FPGA的基础 FPGA,即现场可编程门阵列(Fiel…

oracle元数据到ods,将元数据存储到Jackrabbit存储库中

小编典典对于JCR 2.0,上传文件基本上与对于JCR 1.0而言是相同的。但是,JCR 2.0添加了一些有用的附加内置属性定义。“ nt:file”节点类型旨在表示文件,并且在JCR 2.0中具有两个内置属性定义(这两个属性定义都是在创建节点时由存储…

linux 负载命令,通过Linux命令查看系统平均负载的方法

1、Linux系统的平均负载的概念有时候我们会觉得系统响应很慢,但是又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待。特定时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度,所以我们通常会在自己的网…

linux 进程调度源码分析,Linux调度器源码分析

代码分析根据3.10版本通过对前面的学习我们知道Linux的调度分为两种周期调度 完成周期性算法参数的更新和系统其它实际的检查主调的 真正的调度过程我们现在来看下主调的的代码框架。入口根《调度发生的情况》的学习,我们知道所有的调度最后都会到 schedule 函数中。…

linux修改端口cost值,Linux下通过修改网卡驱动的参数调整Intel网卡的性能

下面列出paramerter中和性能相关的几个以及他们的取值范围和默认值。InterruptThrottleRate范围:100-100000 (0off, 1dynamic)默认:0注:不支持82542, 82543, 82545, 82544芯片RxDescriptors范围:80-256 for 82542 and 82543-based…

Linux跑齿轮命令,【转】glxgears命令

glxgears是一个测试你的Linux是否可以顺利运行2D、3D的测试软件。这个程序弹出一个窗口,里面有三个转动的齿轮,屏幕将显示出每五秒钟转动多少栅,所以这是一个合理的性能测试。窗户是可以缩放的,栅数多少极大程度上依赖于窗口的大小…

log4j日志 linux配置,Log4j 日志详细用法

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式Log4j 除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离Java ide环…

linux 改目录前缀,Linux修改终端显示前缀及环境变量

Linux终端前面默认显示一长串,如:这是由PS1环境变量决定的:[[email protected] dir]$ echo $PS1[\u\H \W]\$其中\u代表用户,\H代表主机,\W代表目录可以修改环境变量,有三种方法:1. 直接修改&…

linux qtcreator输入中文,新版QT creator下解决fcitx无法输入中文问题(QTcreatorV4.1.0)...

Preface新版本的QT creatorV4.0.0之后,就QT creator结构本身就发生了很大的变化,许多文件路径以及结构都发生了较大的变化。因此,fcitx的qt5库位置也发生了变化,但是原理还是一样的,都是需要一个动态依赖库&#xff1a…