JAVA网页编程之使用JSP手艺和Chart组件完成基于WEB的统...
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。chart|js|web|统计|图表JSP(JavaServerPages)是由Sun微体系公司于1999年6月推出的一项新手艺,是基于JavaServlet和全部java系统的Web开辟手艺,使用这一手艺能够创建先辈、平安和跨平台的静态网站。JSP与Microsoft的ASP(ActiveServerPages)手艺十分类似。二者都供应在HTML代码中夹杂某种程序代码、由言语引擎注释实行程序代码的才能。在ASP或JSP情况下,HTML代码次要卖力形貌信息的显现款式,而程序代码则用来形貌处置逻辑。ASP下的编程言语是vbscript之类的剧本言语,而JSP利用的是Java。Microsoft?OfficeWeb组件初次包括在Microsoft?Office2000中。它们是用于向Web页增加电子表格、图表和数据处置功效的ActiveX?控件的汇合。在利用Microsoft?InternetExplorer扫瞄包括OfficeWeb组件的Web页时,您能够间接在InternetExplorer中处置显现的数据,如对数据举行排序和选择,输出新的数值,睁开和折叠明细数据,举行行列扭转以检察源数据的分歧汇总信息等。Microsoft?OfficeWeb控件可以供应一切这些功效,共有三种OfficeWeb组件:Spreadsheet组件、Chart组件和PivotTable?组件。本文将利用个中的Chart组件。
1、JSP手艺与Chart组件
JSP手艺是一种在服务器端编译实行的Web计划言语,其剧本言语接纳Java,完整承继了Java的一切长处。它能将网页的静态部分与静态部分无效分隔,你只需用任何一种你熟习的网页制造工具,编写划定规矩的HTML,然后经由过程JSP标志(tag)将静态部分包括出去就能够了,tag尽年夜部分是以"<%"入手下手,以"%>"停止的。
Chart组件是MicrosoftOffice利用的数据绑定ActiveX控件,用于向Web页增加图表功效。我们在安装微软的Office2000时会缺省安装一个组件OfficeWebComponents,Chart组件就含在这个组件中,对应的文件是msowc.dll。
2、完成实例
本文的运转情况是:Jbuilder7+Oracle8i,同时使用了JAVABEAN手艺来完成与Oracle数据库的毗连。
上面的程序graph.jsp完成了从数据库中读出一段工夫内内燃机车和电力机车的数值,然后用统计图表显现,用户能够选择图形体例。(以下斜体部分为JSP代码)
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*,java.io.*,java.util.*,java.util.Date"%>
<jsp:useBeanid="zzjwbean"scope="page"class="jsp.zzjw"/>
<!--用JAVABEAN完成与数据库毗连(本段代码略)-->
<%
/*变量界说略*/
/*取得查询的年,月,肇端日期,即:year,month,f_gk_startdate和停止日期f_gk_enddate,本段代码略*/
%>
<html>
<head>
<title>
</title>
<formname=fmaction=""method="post">
</form>
<bodybgcolor="#DAFAFC">
<scriptlanguage="vbscript">
subwindow_onload()
Dimcategories(34)将横坐标的值赋给vbscript情况下的数组categories
Dimvalues(34)将纵坐标的值赋给vbscript情况下的数组values
<%
i=0;
rs=zzjwbean.executeQuery("select*fromT_zzj_dw");/*取得单元称号*/
while(rs.next())
{
%>
categories(<%=i%>)=<%="""+rs.getString("f_fjmc")+"""%>
<%
i++;
}
%>
ChartSpace1.Charts.Add‘将图表增加到图表事情区中
将变量c设置为Constants属性所前往的对象,由于在vbscript中不克不及利用已定名的常量
Setc=ChartSpace1.Constants
ChartSpace1.Charts(0).hastitle=true图表有题目
ChartSpace1.Charts(0).Title.Font.Name="仿宋_GB231280"题目字体
ChartSpace1.Charts(0).Title.Font.size=11题目字体巨细
ChartSpace1.Charts(0).Title.Font.color="blue"题目字体色彩
ChartSpace1.Charts(0).Title.caption="<%=year%>年<%=month%>月机车概略月报表统计图"题目内容
ChartSpace1.Charts(0).HasLegend=True指定图表具有图例
指定图表的图形体例为列状图
ChartSpace1.Charts(0).type=c.chChartTypeColumnClustered
给图表赋横坐标的值
ChartSpace1.Charts(0).SetDatac.chDimCategories,c.chDataLiteral,categories
系列0对应内燃机车统计数值
ChartSpace1.Charts(0).SeriesCollection(0).Caption="内燃机车统计"系列0的图例
将内燃机车统计的值赋给vbscript情况下的数组values
<%
i=0;
rs1=null;
f_fjbm="";
rs=zzjwbean.executeQuery("select*fromT_zzj_dw");
while(rs.next())
{
f_fjbm=rs.getString("f_fjbm");
rs1=zzjwbean.executeQuery("selectsum(f_jc_nrhj)fromT_jccwygkwheref_jccwy_fj="+f_fjbm+"andf_date>="+f_gk_startdate+"andf_date<="+f_gk_enddate+"");/*统计数据*/
if(rs1.next())
{
%>
values(<%=i%>)=<%=rs1.getInt(1)%>
<%
i++;
}
}
%>
将内燃机车统计的值赋给图表的系列0
ChartSpace1.Charts(0).SeriesCollection(0).SetDatac.chDimValues,c.chDataLiteral,values
ChartSpace1.Charts(0).SeriesCollection.Add向图表中增加系列1
ChartSpace1.Charts(0).SeriesCollection(1).Caption="电力机车统计"系列1的图例
将电力机车统计的值赋给vbscript情况下的数组values
<%
i=0;
rs1=null;
f_fjbm="";
rs=zzjwbean.executeQuery("select*fromT_zzj_dw");
while(rs.next())
{
f_fjbm=rs.getString("f_fjbm");
rs1=zzjwbean.executeQuery("selectsum(f_jc_dlhj)fromT_jccwygkwheref_jccwy_fj="+f_fjbm+"andf_date>="+f_gk_startdate+"andf_date<="+f_gk_enddate+"");
if(rs1.next())
{
%>
values(<%=i%>)=<%=rs1.getInt(1)%>
<%
i++;
}
}
%>
将电力机车统计的值赋给图表的系列1
ChartSpace1.Charts(0).SeriesCollection(1).SetDatac.chDimValues,c.chDataLiteral,values
指定纵坐标轴有题目,并赋值,然后指定命据的显现格局
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).hastitle=true
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).title.Font.Name="黑体"
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).title.Font.size=11
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).title.caption="机车算计(台数)"
ChartSpace1.Charts(0).Axes(c.chAxisPositionLeft).NumberFormat="0.##"
指定横坐标轴有题目,并赋值
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).hastitle=true
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).title.Font.Name="黑体"
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).title.Font.size=12
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).title.caption="郑州局机车概略月报表"
endsub
依据用户选择的图形体例,改动图表的外形
subdd_onchange()
ChartSpace1.Charts(0).type=dd(dd.selectedIndex).value
endsub
</script>
</head>
<body>
<selectname="dd"size="1">
<optionvalue="0"selected>列状图</option>
<optionvalue="3">栏状图</option>
<optionvalue="6">光滑曲线图</option>
<optionvalue="18">饼行图</option>
<optionvalue="29">面积图</option>
</select>
<!--创立一个图表事情区对象,名为“ChartSpace1”-->
<p>
<objectid=ChartSpace1classid=CLSID:0002E500-0000-0000-C000-000000000046codebase="msowc.dll"style="width:100%;height:350">
</object>
</p>
</body>
</html>
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践! 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 Java 编程语言的风格十分接近C、C++语言。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 是一种突破用户端机器环境和CPU 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
页:
[1]