表现层:
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<html>
<title></title>
<head>
<script type="text/javascript">
//定义一个变量用于存放XMLHttpRequest对象
var xmlHttp;
//该函数用于创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
//这 是响应省份列表onChange事件的处理方法
function autoFlush(){
// 创建一个日期变量和一个时间变量
var tempTime = new Date();
var tempParameter = tempTime.getTime();
//创建一个XMLHttpRequest对象
createXMLHttpRequest();
//将状态触发器绑定到一个processor函数
xmlHttp.onreadystatechange = processor;
//通过GET方法向指定的URL建立服务器的调用
xmlHttp.open("GET","updateCounter.action?rnd="+tempParameter,true);
//发送请求
xmlHttp.send(null);
}
//这是一个用来处理状态改变的函数
function processor(){
//定义一个变量用于存放从服务器返回的响应结果
var result;
if(xmlHttp.readyState == 4){//如果响应完成
if(xmlHttp.status == 200){//如果返回成功
//取出服务器返回的XML文档的所有标签的子节点响应内容
var docXML = xmlHttp.responseXML;
result = docXML.getElementsByTagName("counter");
for(var i =0;i<result.length;i++){
//用相应的统计数据更新统计图片的状态
var tempHeight = result[i].childNodes[0].nodeValue;
document.getElementById("bar"+i).height = tempHeight;
}
}
}
}
setInterval("autoFlush();",1000);
</script>
</head>
<body>
<center>
<table border="0" bgcolor="#c0c0c0" width="360px">
<tr><td colspan="6" align="center"><h2>指标动态统计数</h2></td>
</tr>
<tr height="100" align="center" valign="bottom">
<td><img id="bar0" src="/images/bar0.gif" width="20"></td>
<td><img id="bar1" src="/images/bar1.gif" width="20"></td>
<td><img id="bar2" src="/images/bar2.gif" width="20"></td>
<td><img id="bar3" src="/images/bar3.gif" width="20"></td>
<td><img id="bar4" src="/images/bar4.gif" width="20"></td>
<td><img id="bar5" src="/images/bar5.gif" width="20"></td>
</tr>
<tr>
<td>指标一</td>
<td>指标二</td>
<td>指标三</td>
<td>指标四</td>
<td>指标五</td>
<td>指标六</td>
</tr>
</table>
</center>
</body>
</html>
控制层
package com.dicorp.ajax.ajax_web.actions;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
*/
/*import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Comment;
import org.w3c.dom.ProcessingInstruction;
import org.w3c.dom.Text;
*/
import com.dicorp.ajax.ajax_web.createXMLUtils.CreateCounterXMLUtil;
import com.opensymphony.webwork.ServletActionContext;
import com.opensymphony.webwork.interceptor.ServletRequestAware;
import com.opensymphony.webwork.interceptor.ServletResponseAware;
import com.opensymphony.xwork.Action;
import com.opensymphony.xwork.ActionContext;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import java.io.*;
import java.net.URI;
import javax.xml.parsers.*;
import java.util.*;
public class UpdateCounterAction implements Action ,ServletResponseAware,ServletRequestAware{
private String selected;
private HttpServletResponse response;
private HttpServletRequest request;
public String getSelected() {
return selected;
}
public void setSelected(String selected) {
this.selected = selected;
}
public String execute() throws Exception {
String content = "";
Random rnd = new Random();
for(int i = 0;i<6;i++){
content = content + rnd.nextInt(100)+",";
}
CreateCounterXMLUtil.createXML("",content);
return SUCCESS;
}
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
}
分享到:
相关推荐
可以使用 HTML 和 CSS 创建动态图表,如条形图或饼图,更直观地展示词频。 7. **错误处理**:为了提高用户体验,应考虑错误处理,如网络问题、服务器错误或无效输入。可以设置 AJAX 的`onerror`事件处理程序,并向...
8. **动画效果**:许多jQuery条形图插件支持动态加载和过渡效果,这能增加图表的吸引力并提升用户体验。 9. **API和事件**:插件可能提供API方法来动态更新数据,或者监听图表事件,如加载完成、点击条形等,方便...
在本案例中,我们将深入探讨如何使用ExtJS读取并解析后端返回的JSON格式数据,然后将这些数据呈现为动态的条形图,以实现吸引用户注意力的视觉效果。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据...
总的来说,这个项目展示了如何将前后端分离的理念应用于实际的Web应用中,利用Spring处理业务逻辑,Ajax实现异步通信,ECharts进行数据可视化,最终提供一个交互式的数据展示界面。这对于理解和实践Web开发中的数据...
在这个项目中,`<canvas>`元素可能被用来绘制条形图和折线图,因为它可以实时渲染像素级别的图形,而`<svg>`则可能用于创建矢量图形,确保在不同分辨率设备上的清晰显示。 CSS3则为样式控制提供了新的可能性,如...
在"所有条形图均包含JavaScript和Ajax"的上下文中,我们可以理解为利用Chart.js和Ajax技术来动态更新条形图的数据。JavaScript是实现网页交互的核心语言,而Ajax(异步JavaScript和XML)则允许在不刷新整个页面的...
在这个名为"jQuery动态统计图形插件.zip"的压缩包中,您将找到一系列资源,用于生成条形图、柱状图、线图和饼图等不同类型的图表。这些图表在数据分析、信息可视化和报告呈现等方面非常有用,可以帮助用户快速理解...
9. **AJAX和jQuery插件**:如果你希望实现交互式图表,可以考虑使用JavaScript库如jQuery和Chart.js,它们可以与ASP.NET后端API结合,实现实时更新和动态数据加载。 10. **响应式设计**:对于移动设备,确保你的...
为了使内存使用情况更直观,这些数据通常会被转换为图表,如条形图或折线图。这可能涉及到JavaScript库,如D3.js、Chart.js或Highcharts等,它们能方便地将数据转化为可交互的图形。 5. **安全性与性能考虑** ...
排骨图(也称为条形图或条形图)是一种数据可视化方式,用于清晰地呈现定量信息,通常用于比较不同类别的数值。 首先,我们需要理解jQuery的基本用法。jQuery的核心功能包括选择器(用于选取DOM元素)、DOM操作...
这些库可以将接收到的内存数据转换成直观的条形图、折线图或其他图表,帮助用户更好地理解内存的使用状态。 5. Web服务器和HTTP协议:为了实现Ajax通信,必须有一个Web服务器来托管JSP页面和后台Java程序。常见的...
在计算机软件工程领域,开发一个能够通过浏览器展示数据库中数据的条形图或柱状图的应用是一项常见的任务,尤其在毕业设计中。本项目采用前后端分离的架构,利用Vue.js作为前端框架,Spring Boot作为后端框架,实现...
在条形码插件中,jQuery可以帮助我们轻松地绑定事件、获取或设置DOM元素属性,以及实现与用户界面的动态交互。 HTML5作为最新的HTML标准,引入了许多新的API和元素,提高了网页开发的效率和功能。例如,Canvas元素...
AJAX通过创建XMLHttpRequest对象(现在更普遍地称为Fetch API)来实现这一功能,发送HTTP请求到服务器,然后接收响应并处理结果,所有这些都在用户无感知的情况下完成。 在使用AJAX时,"loading"图的作用尤为重要。...
动态柱状图投票代码是一...通过阅读和理解这些代码,你可以学习到如何利用JavaScript实现动态柱状图,以及如何将其应用于投票系统的实践。如果你对前端开发、数据可视化或者JavaScript感兴趣,这是一个很好的学习案例。
这可能需要结合JavaScript库,如jQuery和Ajax,来实现与服务器的通信和页面动态更新。 在提供的压缩包文件中,"JFreeChart"可能包含了示例代码、数据库脚本、参考资料和其他帮助文件。你可以通过研究这些文件来...
在这个代码包中,Canvas被用来绘制柱状图、条形图和折线图。开发者可以通过指定坐标、颜色和其他属性,实现各种自定义的图形效果。 柱状图(Bar Chart)是一种常见的数据可视化方式,常用于比较不同类别的数量。在...
总的来说,jQuery结合适当的插件或库,可以轻松实现条形统计图的创建,无论是静态展示还是动态更新,都能满足多样化的需求。在实际项目中,根据数据量、性能要求以及对交互性的需求,选择合适的工具和方法至关重要。
2. **图形渲染**:JavaScript库如D3.js或Chart.js可以用来创建各种图表,如条形图、饼图或线图,以直观地展示投票结果。这些库提供了丰富的API,可以方便地定制图形样式和动画效果。 3. **HTML结构**:`index.html`...
在Web环境中生成条形码是一项常见的需求,尤其在电商、物流、库存管理等领域。条形码作为一种自动识别技术,能够快速、准确地读取产品信息,极...理解并掌握这些知识点,就能在Web项目中有效地实现条形码的生成与展示。