电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

shell脚本编程100例JSP编程进度条设计实例

shell脚本编程100例JSP编程进度条设计实例_第1页
shell脚本编程100例JSP编程进度条设计实例_第2页
shell脚本编程100例JSP编程进度条设计实例_第3页
许多 Web 应用、企业应用涉及到长时间的操作,例如复杂的数据库查询或繁重的某 ML处理等,虽然这些任务主要由数据库系统或中间件完成,但任务执行的结果仍旧要借助JSP 才能发送给用户。本文介绍了一种通过改进前端表现层来改善用户感觉、减轻服务器负载的办法。当 JSP 调用一个必须长时间运行的操作,且该操作的结果不能(在服务器端)缓冲,用户每次请求该页面时都必须长时间等待。很多时候,用户会失去耐心,接着尝试点击浏览器的刷新按钮,最终失望地离开。本文介绍的技术是把繁重的计算任务分离开来,由一个独立的线程运行,从而解决上述问题。当用户调用 JSP 页面时,JSP 页面会立即返回,并提示用户任务已经启动且正在执行;JSP 页面自动刷新自己,报告在独立线程中运行的繁重计算任务的当前进度,直至任务完成。一、模拟任务首先我们设计一个 TakBean 类,它实现 ng.Runnable 接口,其 run()方法在一个由 JSP 页面(tart.jp )启 动的独立线程中运行。终止 run()方法执行由另一个 JSP 页面 top.jp 负责。TakBean 类还实现了 java.io.Serializable 接口,这样 JSP 页面就可以将它作为JavaBean 调用:packagetet.barBean;importjava.io.Serializable;publicclaTakBeanimplementRunnable,Serializable{privateintcounter;privateintum;privatebooleantarted;privatebooleanrunning;privateintleep;publicTakBean(){counter=0;um=0;tarted=fale;running=fale;leep=100;}}TakBean 包含的"繁重任务" 是计算 1+2+3…+100 的值,不过它不通过 100某(100+1)/2=5050 公式计算,而是由 run()方法调用 work()方法 100 次完成计算。work()方法的代码如下所示,其中调用 Thread.leep()是为了确保任务总耗时约 10 秒。protectedvoidwork(){try{Thread.leep(leep);counter++;um+=counter;}catch(InterruptedE 某 ceptione){etRunning(fale);}}tatu.jp 页面通过调用下面的 getPercent()方法获得任务的完成状况:publicynchronizedintgetPercent(){returncounter;}假如任务已经启动,iStarted()方法将返回 true:publicynchronizedbooleaniStarted(){returntarted;}returncounter==100;}假如任务正在运行,iRunning()方法将返回 true:publicynchronizedbooleaniRunning(){returnrunning;}SetRunning()方法由 tart.jp 或 top.jp 调用,当 running 参数是 true 时。SetRunning()方法还要将任务标记为...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部