shell脚本编程100例JSP编程进度条设计实例.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
shell脚本编程100例JSP编程进度条设计实例.docx 该文档主要介绍了一种通过改进前端表现层来改善用户感觉、减轻服务器负载的办法。当 JSP 调用一个必须长时间运行的操作时,用户每次请求该页面时都必须长时间等待,导致用户会失去耐心,接着尝试点击浏览器的刷新按钮,最终失望地离开。为解决这个问题,本文提出了一种技术,即把繁重的计算任务分离开来,由一个独立的线程运行,从而解决上述问题。 在该技术中,JSP 页面会立即返回,并提示用户任务已经启动且正在执行;JSP 页面自动刷新自己,报告在独立线程中运行的繁重计算任务的当前进度,直至任务完成。 下面是该技术的实现细节: 1. 模拟任务 我们设计一个 TakBean 类,它实现 ng.Runnable 接口,其 run() 方法在一个由 JSP 页面(tart.jp)启 动的独立线程中运行。终止 run() 方法执行由另一个 JSP 页面 top.jp 负责。TakBean 类还实现了 java.io.Serializable 接口,这样 JSP 页面就可以将它作为 JavaBean 调用。 TakBean 类包含的"繁重任务"是计算 1+2+3…+100 的值,不过它不通过 100 某 (100+1)/2=5050 公式计算,而是由 run() 方法调用 work() 方法 100 次完成计算。work() 方法的代码如下所示,其中调用 Thread.leep() 是为了确保任务总耗时约 10秒。 2. 启动任务 tart.jp 是 web 某 ml 部署描述符中声明的欢迎页面,web 某 ml 的内容是:<某 ml version="1.0" encoding="GB2312"><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"> <web-app></web-app> tart.jp 启动一个专用的线程来运行"繁重的任务",然后把 HTTP 请求传递给 tatu.jp。tart.jp 页面利用<jp:useBean>标记创建一个 TakBean 实例,并将其设置为可序列化的。 在 TartBean 中,我们定义了四个变量:counter、um、started 和 running。其中,counter 用于记录当前计算的进度,um 用于记录计算的结果,started 用于记录任务是否已经启动,running 用于记录任务是否正在运行。 我们还定义了四个方法:getPercent()、iStarted()、iRunning() 和 setRunning()。getPercent() 方法用于获取当前计算的进度,iStarted() 方法用于判断任务是否已经启动,iRunning() 方法用于判断任务是否正在运行,setRunning() 方法用于设置任务的状态。 在 run() 方法中,我们首先调用 setRunning(true) 方法将任务标记为"已经启动",然后调用 work() 方法 100 次来完成计算。finally 块中,我们调用 setRunning(false) 方法将任务标记为"已经完成"。 在 tatu.jp 页面中,我们使用 getPercent() 方法来获取当前计算的进度,并使用 iStarted() 和 iRunning() 方法来判断任务的状态。如果任务已经启动,我们就显示进度条,如果任务正在运行,我们就显示正在运行的状态。 该技术可以将繁重的计算任务分离开来,由一个独立的线程运行,从而解决服务器负载和用户等待时间的问题。同时,该技术还可以提供一个良好的用户体验,实时显示任务的进度和状态。
- 粉丝: 1w+
- 资源: 5万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助