基本思路:

1. 操作状态在类中以静态变量方式(或公共类存储公共变量方式,SESSION方式、COOKIE方式)存在

2. 前台采用AJAX方式激发后台进行业务逻辑操作,并实时更新操作状态信息

3. 前台定时取后台操作状态并显示

4. 在获取最后操作结果后结束定时器

示例:

1. 前台采用进度条方式进行显示,定义如下

<div id="progressbarShow" data-toggle="topjui-progressbar"></div>

2. 后台设置操作状态,以静态变量方式为例

private static int value = 0;
private static String msg = "";

3. 后台业务逻辑实时更新操作状态,如

private String test() {
//重置操作状态
value = 0;
msg = "reading"; // 设置操作返回值
JSONObject jsonObject = new JSONObject();
jsonObject.put("title", "提示信息"); try {
//循环业务逻辑代码;
value = *****;
   msg = ******;
//循环任务结束
jsonObject.put("statusCode", 200);
jsonObject.put("message", "操作成功");
} catch (InterruptedException e) {
e.printStackTrace();
jsonObject.put("statusCode", 300);
jsonObject.put("message", "操作失败");
} return jsonObject.toString();
}

4. 后台实时监控方法,如

    private String checkStatus() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("value", value);
jsonObject.put("msg", msg);
return jsonObject.toString();
}

5. 前台调用并实时监控,如

    // 设置定时器
var testTimer;
// 关闭定时器
clearInterval(testTimer);
// 开启定时器实时监控
testTimer = setInterval(function(){
loadProcess();
}, 500);
// 实时监控程序
function loadProcess(){
$.getJSON("indexHandle.jsp?flags=checkStatus", function (data) {
$('#progressbarShow').iProgressbar('setValue', data.value);
});
}
// 激发后台业务逻辑处理
$.getJSON("indexHandle.jsp?flags=test", function (data) {
if(data.statusCode){
// 操作成功后相关处理
} else {
// 操作失败后相关处理
}
// 重置进度条状态
$('#progressbarShow').iProgressbar('setValue',0);
// 关闭定时器
clearInterval(testTimer);
});

JAVA WEB 前台实时监控后台程序运行的更多相关文章

  1. java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)

    首先说下需求:通过ftp上传约定格式的文件到服务器指定目录下,应用程序能实时监控该目录下文件变化,如果上传的文件格式符合要求,将将按照每一行读取解析再写入到数据库,解析完之后再将文件改名. 一. 一开 ...

  2. 远程监控 – 应用程序运行状况测量 CSF 博客

    在远程监控基础知识和故障排除中,我们探讨了 Windows Azure 平台提供的基础指标.信息源.工具和脚本,介绍了有关监控和应用程序运行状况的基本原则.我们演示了如何利用这些基本原则对在 Wind ...

  3. Java之Property-统获取一个应用程序运行的次数

    package FileDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...

  4. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

  5. 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...

  6. JAVA Web从前端到后台常用框架介绍

    原博客:https://blog.csdn.net/u013142781/article/details/50922010 一.SpringMVC http://blog.csdn.net/evank ...

  7. java web项目发生异常依然能运行

    由于JavaWeb应用业务逻辑的复杂性,容易发生一些意想不到的错误和异常,给系统的调试带来不必要的麻烦,不友好的提示信息使编程者对错误和异常无从下手.特别是当发生异常时,Java异常栈输出的信息只能给 ...

  8. GCD之后台程序运行

    点击Home键进入后台时进行计时,直到从新启动,超过三分钟启动手势 // // AppDelegate.m // GCDDown // // Created by City--Online on 15 ...

  9. java+selenium打开浏览器实现后台静默运行

    简介:java selenium搭建无界面浏览器 PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScri ...

随机推荐

  1. (PowerShell) 重命名文件

    Get-ChildItem -Path C:\temp\test -Filter *.txt | Rename-Item -NewName {$_.Basename.Replace("Old ...

  2. Python中os.listdir的排序问题

    上周应别人要求,使用python批量修改文件名称.文件名有规律,当时就用了一个函数直接精确的用文件名替换了.后来想直接可以用listdir来遍历每个文件来修改更加通用一些.但是看了os.listdir ...

  3. 【JavaScript】闭包应用之数据独立

      在平常的开发中,总有一些方法我们在不同的地方都有用的,因此我们会把这些方法封装起来.当我们需要在开发一个功能的时候需要用到一个组合函数(多个函数之间有联系,即有一个或多个共同的全局变量)且这个组合 ...

  4. 服务器端的tomcat,servlet框架

    tomcat是一个服务器程序 可以对webapp目录下的Servlet代码进行执行和操作 编写的Servlet代码的步骤一般是在本地的ide中编写和测试,然后打包工程为war格式的文件,部署在服务器t ...

  5. 7.Java关键字和保留字

    一.概念 Java关键字(Key Word):  对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构. 保留字(Reserve Word):即它们在Java现有版本中没有特殊含 ...

  6. Android SDK和ADT无法更新的解决办法

    重要的东西要标红: 经过另外一台电脑测试,按照第二步设置好hosts后,可以一并解决 SDK 和 ADT的更新,无需单独设置SDK Manager. 这里还是写出如何设置SDK Manager以作记录 ...

  7. 对于over-posting的防御

    over-posting简单的说就是指用户通过猜测等手段得知了后端数据Model的属性名称,在数据更新或添加的时候提交了本不应该允许用户更改的数据库字段,并且在服务器端因为没有进行防御而将恶意提交的数 ...

  8. codeforces 808G Anthem of Berland

    codeforces 808G Anthem of Berland 题面 给定\(s\)串和\(t\)串,字符集是小写字母.\(s\)串中有些位置的值不确定,要求你确定这些位置上的值,使得\(t\)在 ...

  9. GET POST 传值与接收案例

      第一种:GET传递 前台 ajax   GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低 后台接收:Request.QueryString[“参数名字”]! 例如: fu ...

  10. 5、Python,enumerate用法

    1.enumerate()是python的内置函数 2.对于一个可迭代(iterable)/可遍历的对象(如列表,字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 3.多用 ...