<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- 自定义标签的引入 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<html>
<head>
<title>进度条</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<!-- js文件和代码 -->
<script type="text/javascript">
//全局变量
var xmlHttp; //XMLHttpRequest对象
var bar_color = 'green'; //进度条背景颜色
var no_color=""; //解决浏览器兼容设置的无颜色变量
var clear = ""; //清空背景颜色用的变量
function go() {
createXMLHttpRequest(); //创建XMLHttpRequest
checkDiv(); //检查processBar所在div
var url = "modifySessionDate.do?task=first"; //提示:需要其他参数,可以再此处添加
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = goCallback; //设置回调函数
xmlHttp.send(null);
}
//创建XMLHttpRequest
function createXMLHttpRequest() {
if (window.ActiveXObject && (typeof(xmlHttp) == 'undefined')) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
clear = " "
//进入进度条,默认设置第1个block,否则非IE内核浏览器进度条显示不正常
var elem = document.getElementById("block1");
elem.innerHTML = clear;
elem.style.backgroundColor = no_color;
}
}
//回调函数
function goCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
setTimeout("pollServer()", 1);
}
}
}
function pollServer() {
createXMLHttpRequest();
var url = "modifySessionDate.do?task=poll";
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = pollCallback; //设置回调函数
xmlHttp.send(null);
}
function pollCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//得到当前进度百分比
var percent_complete = xmlHttp.responseText;
var index = percent_complete / 2; //100个百分点,显示在50个block上
for (var i = 1; i <= index; i++) {
var elem = document.getElementById("block" + i);
elem.innerHTML = clear; //不设置innerHTML属性,非IE内核浏览器不会显示进度
elem.style.backgroundColor = bar_color; //为block设置背景颜色
document.getElementById("finish").innerHTML = '<font style="font-weight:bold;color:blue" mce_style="font-weight:bold;color:blue">'+percent_complete + '%'+'</font>';
}
//只要进度小于100%继续每隔1000毫秒调用一次pollServer()
if (percent_complete < 100) {
setTimeout("pollServer()",1000);
} else if(percent_complete == 100){
var redirectResultView="requestJSP2.do"; //要跳转的页面可以从servlet中传过来
var urlInfo = '正在加载展示数据,如果没有跳转请点<a href="';
urlInfo += redirectResultView;
urlInfo += '"><font color="red">这里</font></a>';
document.getElementById("complete").innerHTML = urlInfo;
//window.location.href = redirectResultView;
//alert("计算完毕");
}
//定义percent超过100后的错误信息
else if(percent_complete == 102){
alert("处理过程出现XX错误!");
}
}
}
}
//检查processBar所在div,设置其是否显示
function checkDiv() {
var progress_bar = document.getElementById("progressBar");
if (progress_bar.style.visibility == "visible") {
clearBar();
document.getElementById("complete").innerHTML = "";
} else {
progress_bar.style.visibility = "visible"
}
}
//清空processBar所在div
function clearBar() {
for (var i = 1; i < 10; i++) {
var elem = document.getElementById("block" + i);
elem.innerHTML = clear;
//elem.style.backgroundColor = "white";
}
}
</script>
</head>
<body id="go" style="top:200px;hight:800px">
<div style="top:145px;width: expression(body.clientWidth);z-index: 100;border: none;">
<%int i = 1; %>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<br>
<br>
<tr>
<td height="20" colspan="3" valign="top">
<center><h2>数据正在处理中,请稍候……</h2> <a href="javascript:go()">进度条test</a></center>
</td>
</tr>
<tr>
<td colspan="3" valign="top">
<table align="center">
<tr>
<td align="center">
<div id="progressBar" style="padding:2px;border:solid green 1px;visibility:hidden" mce_style="padding:2px;border:solid green 1px;visibility:hidden" align="left">
<div style="width:800px">
<c:forEach begin="1" end="50" step="1" >
<span id="block<%=i++ %>" style="width:2%;"></span>
</c:forEach>
</div>
</div>
</td>
<td align="center" id="finish"></td>
</tr>
<tr>
<td align="center" id="complete">
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<java>
String task = request.getParameter("task");
if(task != null){
try {
String res = "1";
String percentStr = "";
PrintWriter out = response.getWriter();
if("first".equals(task)){
request.getSession().setAttribute("percent", "1");
} else if("poll".equals(task)){
//模拟进度条
if(!"100".equals(percentStr)){
String p = request.getSession().getAttribute("percent").toString();
int temp_percent = Integer.parseInt(p) + 4 ;
temp_percent = temp_percent>100?100:temp_percent;
percentStr = String.valueOf(temp_percent);
if(percentStr.equals("100")){
request.getSession().removeAttribute("percent");
}else{
request.getSession().setAttribute("percent", percentStr);
}
}
System.out.println("percentStr:"+percentStr);
res = percentStr;
}
response.setHeader("Cache-Control", "no-cache");
out.println(res);
out.flush();
out.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
</body>
</html>
分享到:
相关推荐
jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储 1、加入购物车时,把数据保存在session中 2、点击系统退出时,购物车中的数据插入到数据库购物车表 3、再次登录时,查询数据库购物车表的数据加载到...
jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+...
大学本科JSP课程的期末作业JSP+Servlet+layui实现的博客系统源码。教程 下载使用tomcat就可以使用,数据库语句也有,如果要修改数据库配置就在tool下面的工具类修改即可大学本科JSP课程的期末作业JSP+Servlet+layui...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。...JSP+servlet,网盘系统,mysql
基于Jsp+Servlet+Java实现的病房管理系统基于Jsp+Servlet+Java实现的病房管理系统 基于Jsp+Servlet+Java实现的病房管理系统基于Jsp+Servlet+Java实现的病房管理系统 基于Jsp+Servlet+Java实现的病房管理系统基于Jsp+...
基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困...
基于jsp+servlet实现的个人博客系统基于jsp+servlet实现的个人博客系统 基于jsp+servlet实现的个人博客系统基于jsp+servlet实现的个人博客系统 基于jsp+servlet实现的个人博客系统基于jsp+servlet实现的个人博客系统...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc [其他类别]jsp+servlet+...[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc
jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc...
本项目以"JSP+servlet+javabean实现购物车"为主题,旨在演示如何使用这些技术来创建一个功能完整的购物车系统。下面我们将深入探讨这些知识点。 1. **JSP(JavaServer Pages)**:JSP是一种服务器端脚本语言,用于...
编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean...
Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+...
基于JDBC+MySQL+Servlet+JSP+Java实现简单校园论坛系统 基于JDBC+MySQL+Servlet+JSP+Java实现简单校园论坛系统 基于JDBC+MySQL+Servlet+JSP+Java实现简单校园论坛系统 基于JDBC+MySQL+Servlet+JSP+Java实现简单校园...
jsp+servlet+javaBean,jsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+...
基于jsp+servlet+Java实现的停车场信息管理系统 基于jsp+servlet+Java实现的停车场信息管理系统 基于jsp+servlet+Java实现的停车场信息管理系统 基于jsp+servlet+Java实现的停车场信息管理系统 基于jsp+servlet+Java...
这是JSP+Servlet+MySql新闻管理系统,环境Eclipse+Mysql+Tomacat8.5运行的,里面libJAR包都有,jsp+servlet+jdbc实现新闻管理系统,这个视频值得看,很基础。...
**JSP+Servlet+JavaBean+JDBC简单登录实例详解** 在Web开发中,构建一个用户登录系统是常见的需求。本实例将详细讲解如何利用JavaServer Pages (JSP)、Servlet、JavaBean以及Java Database Connectivity (JDBC) 来...
本项目“jsp+Servlet+javaBean实现登录注册”采用经典的Web开发技术栈,包括JavaServer Pages (JSP)、Servlet以及JavaBeans,结合MySQL数据库,利用集成开发环境myEclipse进行开发。下面将详细阐述这些知识点。 1. ...