实现功能:

  1. 数据库有新数据图表会更新到
  2. 数据库查询使用ssh框架中的hibernate

想法:

  • 画图表的ajaxautoruncopy.jsp利用ajax收到7-13.jsp传过来的数据
  • 7-13.jsp实例化test_aa.java类,调用ta.test_aa_data()与String dataYear =ta.test_aa_data_set()方法,获得test_aa类传过来的数据,并传送给ajaxautoruncopy.jsp
  • test_aa.java接入spring的applicationContext.xml调用ssh中的hibernate的查询方法进行查数据
  • 在ajaxautoruncopy.jsp中有个小线程setTimeout("sendRequest()", 1000),每隔一定时间进行重新取数据与重绘图表

ajaxautoruncopy.jsp

 <%@include file="jqplotinclude.txt"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'autoRefresh.jsp' starting page</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">
<meta http-equiv="description" content="This is my page">
<!-- Additional plugins go here --> <script class="include" type="text/javascript" src="js/jQuery/jqPlot/plugins/jqplot.logAxisRenderer.min.js"></script>
<script class="include" type="text/javascript" src="js/jQuery/jqPlot/plugins/jqplot.canvasTextRenderer.min.js"></script>
<script class="include" type="text/javascript" src="js/jQuery/jqPlot/plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
<script class="include" type="text/javascript" src="js/jQuery/jqPlot/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
<script class="include" type="text/javascript" src="js/jQuery/jqPlot/plugins/jqplot.dateAxisRenderer.min.js"></script>
<script class="include" type="text/javascript" src="js/jQuery/jqPlot/plugins/jqplot.categoryAxisRenderer.min.js"></script>
<script class="include" type="text/javascript" src="js/jQuery/jqPlot/plugins/jqplot.barRenderer.min.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<script language="javascript"> var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
//发送请求函数
function sendRequest() {
createXMLHttpRequest();
var url = "7-13.jsp";
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求 }
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
DisplayHot();
//一定时间后重新加载sendRequest()方法
setTimeout("sendRequest()", 1000);
} else { //页面不正常
window.alert("您所请求的页面有异常。");
}
}
}
function DisplayHot() {
var name = XMLHttpReq.responseXML.getElementsByTagName("name")[0].firstChild.nodeValue;
var count = XMLHttpReq.responseXML.getElementsByTagName("count")[0].firstChild.nodeValue;
document.getElementById("product").innerHTML = name;
document.getElementById("count").innerHTML = count;
var dataYear = XMLHttpReq.responseXML.getElementsByTagName("dataYear")[0].firstChild.nodeValue;
// document.getElementById("data").innerHTML =dataYear;
//alert(<%=session.getAttribute("dataYear") %>);
//alert(dataYear);
var data =eval(dataYear);
//alert(data);
var line2 =data;
// alert(line2); // var line2 =XMLHttpReq.responseXML.getElementsByTagName("dataYear")[0].firstChild.nodeValue;
document.getElementById("chart2").innerHTML = "";
var plot2 = $.jqplot('chart2', [line2], {
axes: {
xaxis: {
renderer: $.jqplot.DateAxisRenderer,
label: 'Incliment Occurrance',
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
// labelPosition: 'middle',
angle: 15
}
},
yaxis: {
label: 'Incliment Factor',
labelRenderer: $.jqplot.CanvasAxisLabelRenderer
}
}
}); }
</script>
<body onload =sendRequest()> <table style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=0 cellPadding=0 width=200 bgColor=#f5efe7 border=0> <TR>
<TD align=middle bgColor=#dbc2b0 height=19 colspan="2"><B>正在热卖的笔记本</B> </TD>
</TR>
<tr>
<td height="20"> 型号:</td>
<td height="20" id="product"> </td>
</tr>
<tr>
<td height="20"> 销售数量:</td>
<td height="20" id="count"> </td>
</tr>
</table>
<div class="example-plot" id="chart2"></div>
<input type="button" value="画图" onclick="createjqplot()"/>
</body>
</html>

7-13.jsp

 <%@ page language="java" pageEncoding="UTF-8"%>

 <%@ page language="java" %>

 <%@ page import="com.mysql.jdbc.Driver" %>

 <%@ page import="java.sql.*" %>
<%@ page import="com.ynwi.ssh.test.test_aa" %> <%
test_aa ta =new test_aa();
ta.test_aa_data();
String dataYear =ta.test_aa_data_set();
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
out.println("<response>");
for(int i=0;i<3;i++){
//out.print("str为:"+ strdiv);
out.print("<dataYear>"+dataYear+
"</dataYear>");
//out.print(dataYear);
out.println("<name>"+(int)(Math.random()*10)+
"型笔记本</name>");
out.println("<count>" +(int)(Math.random()*100)+ "</count>");
}
out.println("</response>");
out.close();
%>

test_aa.java

 package com.ynwi.ssh.test;

 import java.net.URL;

 import org.springframework.context.support.FileSystemXmlApplicationContext;

 import com.opensymphony.xwork2.util.ResolverUtil.Test;
import com.ynwi.ssh.beans.Meter_param_Data;
import com.ynwi.ssh.daoImpl.TestDao; public class test_aa {
private TestDao testdao;
private static String daaa;
public TestDao getTestdao() {
return testdao;
} public void setTestdao(TestDao testdao) {
this.testdao = testdao;
}
public void test_aa_data(){
Meter_param_Data mpd = new Meter_param_Data();
test_aa ta=(test_aa)new FileSystemXmlApplicationContext("file:E:/Workspace_newSSH/SSH_jqplot/WebRoot/WEB-INF/applicationContext.xml").getBean("test_aa");
daaa =ta.testdao.RTfindObject(mpd);
System.out.println("test_aa_data:"+daaa);
}
public String test_aa_data_set(){
System.out.println("test_aa_data_set:"+daaa);
return daaa;
} }

还有hibernate等的一些代码就不贴出来了.

小弟初学!若有什么错误或建议很感谢各位的提出!

另外,对于test_aa.java中第23行的file:E:/Workspace_newSSH/SSH_jqplot/WebRoot/WEB-INF/applicationContext.xml,我不想输入绝对地址的,但尝试了几个办法获取applicationContext.xml的地址都不行,主要是在tomcat运行下获取的地址会是tomcat机制下的地址,例如:e:/tomcat/.....但我不要获取这个地址,我要获取的是E:/Workspace_newSSH/SSH_jqplot这个字符串,我也上百度提问了下,在http://zhidao.baidu.com/question/584875712.html?quesup2&oldq=1,有人知道的可以帮我下?

ajax jqplot ssh实现图表的持续更新的更多相关文章

  1. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  2. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

  3. 关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】

    最近一直用ASP.NET MVC 4.0 +LINQ TO SQL来开发设计公司内部多个业务系统网站,在这其中发现了一些问题,也花了不少时间来查找相关资料或请教高人,最终都还算解决了,现在我将这些问题 ...

  4. 【 js 基础 】【 源码学习 】源码设计 (持续更新)

    学习源码,除了学习对一些方法的更加聪明的代码实现,同时也要学习源码的设计,把握整体的架构.(推荐对源码有一定熟悉了之后,再看这篇文章) 目录结构:第一部分:zepto 设计分析第二部分:undersc ...

  5. 【持续更新】JavaScript常见面试题整理

    [重点提前说]这篇博客里的问题涉及到了了JS中常见的的基础知识点,也是面试中常见的一些问题,建议初入职场的园友Mark收藏,本文会持续更新~ 1. 引入JS的三种方式 1.在HTML标签中直接使用,直 ...

  6. 中国.NET:各地微软技术俱乐部汇总(持续更新中...)

    中国.NET:各地微软技术俱乐部汇总(持续更新中...)   本文是转载文,源地址: https://www.cnblogs.com/panchun/p/JLBList.html by ​史记微软. ...

  7. 【github&&git】4、git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  8. web前端面试题(持续更新)

    此文是我本人在面试的时候遇到的问题和一些同学遇到的问题加资料上面的问题的总结.(将会持续更新,因为未有满意工作) 面试时有几点需要注意: 1.面试题目:根据你的等级和职位的变化,入门级到大神级,广度和 ...

  9. 100万套PPT模板,包含全宇宙所有主题类型PPT,绕宇宙100圈,持续更新

    100万套PPT模板,包含全宇宙所有主题类型PPT(全部免费,都是精品,没有一张垃圾不好看的PPT,任何一张PPT拿来套入自己的信息就可以立马使用),绕宇宙100圈,任意一个模板在某文库上都价不菲.强 ...

随机推荐

  1. Nginx反向代理下IIS获取真实IP

    1. iis 如果放在反向代理后面,日志里的c-ip是反向代理服务器的ip,不是真正用户的ip,想要记录用户的ip要做两件事. 一.在反向代理设置X-Forwarded-For段,以下为nginx下的 ...

  2. plsql批量导入sql文件

    背景:有时候在两个数据库之间导入导出数据,不可避免的需要进行sql文件的批量导入,一个个导入效率太低,所以可以考虑批量导入的办法进行导入. 操作步骤 1.假设有三个sql脚本,分别为aa.sql,bb ...

  3. Spark记录-Scala字符串

    Scala字符串 在Scala中的字符串和Java中的一样,字符串是一个不可变的对象,也就是一个不能修改的对象.可以修改的对象,如数组,称为可变对象.字符串是非常有用的对象,在本节的最后部分,我们将介 ...

  4. git安装与初始化

    命令行 Git有多重方式使用 原生命令行,才能使用git所有命令,会git命令再去用gui图形工具,完全无压力 GUI图形软件,只是实现了git的部分功能,以减免操作难度,难以记住git原生命令 不同 ...

  5. Spring Cloud (十五)Stream 入门、主要概念与自定义消息发送与接收

    前言 不写随笔的日子仿佛就是什么都没有产出一般--上节说到要学Spring Cloud Bus,这里发现按照官方文档的顺序反而会更好些,因为不必去后边的章节去为当前章节去打基础,所以我们先学习Spri ...

  6. 滚动视差插件skrollr.js

    东西虽好,但也不能懒到自己一点都不去做总结,那么下方将会写出从网上找到,比较好的网址(应该是根据官网翻译的). 自己先做一个总结:这个插件兼容上做到了降级处理,虽然低端浏览器没有那么顺畅的效果,但是勉 ...

  7. 数据绑定和第一个AngularJS Web应用

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  8. 分布式监控工具Ganglia 介绍 与 集群部署.

    如果你目的很明确就是冲着标题来的,不爱看我唠叨,请直接进入第二个分割线之后的内容. 其实之前就是有做Swift监控平台的打算的,但是因为没什么硬性需求么,也不要紧的,就一直搁置了.最近实验室来了个大二 ...

  9. 经典设计模式-iOS的实现

    最近看了<HeadFirst 设计模式>这本书,给组内伙伴准备一次分享,把这次分享记录下来,有需要的可以看看. 这本书主要介绍了四人帮23种经典设计模式中的的14种,也是常用的几种.看完这 ...

  10. iOS 解决汉字联想输入,导致字数限制失效的问题

    字数限制的问题点在于汉语可以无限汉语联想词汇,导致字数限制对于汉字输入就失去的作用.我们的做法是监听键盘联想出来的汉子,将其统计: 1 在viewDidLoad里面监听文本变化的通知 - (void) ...