基于JSP的在线图片投票系统含源文件文档格式.docx
- 文档编号:6184375
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:44
- 大小:2.11MB
基于JSP的在线图片投票系统含源文件文档格式.docx
《基于JSP的在线图片投票系统含源文件文档格式.docx》由会员分享,可在线阅读,更多相关《基于JSP的在线图片投票系统含源文件文档格式.docx(44页珍藏版)》请在冰点文库上搜索。
Jfreechart:
同理,也需要一个Jfreechart的jar包,才能实现图表显示功能,在本系统中实现的是结果柱状图显示,故在此处介绍一下柱状图的制作。
在制作图表之前必须先在web.xml中配置一下
1.<
servlet>
2.
servlet-name>
DisplayChart<
/servlet-name>
3.
servlet-class>
org.jfree.chart.servlet.DisplayChart<
/servlet-class>
4.<
/servlet>
5.<
servlet-mapping>
6.
7.
url-pattern>
/servlet/DisplayChart<
/url-pattern>
8.<
/servlet-mapping>
%@pagecontenttype="
charset=gbk"
%>
%@pageimport="
org.jfree.chart.chartfactory,
org.jfree.chart.jfreechart,
org.jfree.chart.plot.plotorientation,
org.jfree.chart.servlet.servletutilities,
org.jfree.data.defaultcategorydataset"
%
defaultcategorydatasetdataset=newdefaultcategorydataset();
dataset.addvalue(300,"
广州"
"
苹果"
dataset.addvalue(200,"
梨子"
dataset.addvalue(500,"
葡萄"
dataset.addvalue(340,"
芒果"
dataset.addvalue(280,"
荔枝"
jfreechartchart=chartfactory.createbarchart3d("
水果销量统计图"
水果"
销量"
dataset,
plotorientation.vertical,
false,
false);
stringfilename=servletutilities.savechartaspng(chart,500,300,null,session);
stringgraphurl=request.getcontextpath()+"
/servlet/displaychart?
filename="
+filename;
imgsrc="
%=graphurl%>
width=500height=300border=0usemap="
#<
%=filename%>
>
复杂一点的特性图,可以参照
也可以使每根柱子的颜色各不相同,下面代码包含了中文乱码的解决方法
pagecontentType="
charset=UTF-8"
org.jfree.chart.ChartFactory,
org.jfree.chart.JFreeChart,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.category.CategoryDataset,
org.jfree.data.general.DatasetUtilities,
org.jfree.chart.plot.*,
org.jfree.chart.labels.*,
org.jfree.chart.renderer.category.BarRenderer3D,
java.awt.*,
org.jfree.ui.*,
org.jfree.chart.axis.AxisLocation,
org.jfree.chart.title.TextTitle,
org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.NumberAxis,
org.jfree.data.category.DefaultCategoryDataset"
double[][]data=newdouble[][]{{300},{200},{500},{340},{300}};
String[]rowKeys={"
"
,芒果"
};
String[]columnKeys={"
CategoryDatasetdataset=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);
JFreeChartchart=ChartFactory.createBarChart3D("
销售"
dataset,PlotOrientation.VERTICAL,true,true,true);
////////////////////////解决中文码//////////////////////////////////////////////////////////////
CategoryPlotplot=chart.getCategoryPlot();
//获取图表区域对象
Fontfont=newFont("
宋体"
Font.BOLD,16);
//设置字体,否则出现中文乱码;
TextTitletitle=newTextTitle("
水果销量图统计"
font);
//设置标题
TextTitlesubtitle=newTextTitle("
温轩辕"
newFont("
黑体"
Font.BOLD,12));
//设置副标题
chart.addSubtitle(subtitle);
//副标题
chart.setTitle(title);
//标题
CategoryAxisdomainAxis=plot.getDomainAxis();
//获得横坐标
NumberAxisnumberaxis=(NumberAxis)plot.getRangeAxis();
//获得纵坐标
domainAxis.setTickLabelFont(newFont("
sans-serif"
Font.PLAIN,11));
//设置X轴坐标上的文字
domainAxis.setLabelFont(newFont("
Font.PLAIN,12));
//设置X轴的标题文字
numberaxis.setTickLabelFont(newFont("
//设置Y轴坐标上的文字
numberaxis.setLabelFont(newFont("
//设置Y轴的标题文字
chart.getLegend().setItemFont(newFont("
//解决了底部汉字乱码
/////////////////////////////////解决中文乱码///////////////////////////////////////////////////
plot.setBackgroundPaint(Color.white);
//设置网格背景颜色
plot.setDomainGridlinePaint(Color.pink);
//设置网格竖线颜色
plot.setRangeGridlinePaint(Color.pink);
//设置网格横线颜色
BarRenderer3Drenderer=newBarRenderer3D();
//显示每个柱的数值,并修改该数值的字体属性
renderer.setBaseItemLabelGenerator(newStandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
//默认的数字显示在柱子中,通过如下两句可调整数字的显示
//注意:
此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
renderer.setBasePositiveItemLabelPosition(newItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_LEFT));
renderer.setItemLabelAnchorOffset(10D);
renderer.setItemLabelFont(newFont("
renderer.setItemLabelsVisible(true);
renderer.setItemMargin(0.3);
//设置平行柱的之间距离
plot.setRenderer(renderer);
//设置销量的显示位置
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
//将下方的“水果”放到上方
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
//将默认放在左边的“销量”放到右方
Stringfilename=ServletUtilities.saveChartAsPNG(chart,700,400,null,session);
//设置图片的宽度和高度
StringgraphURL=request.getContextPath()+"
/DisplayChart?
%=graphURL%>
width=700height=400border=0usemap="
下面就是投系统的代码和图示(注:
其中的图片和背景都是自己找的,代码中只含有图片的路径,和名称,粘贴代码不能得出所示的效果图)
1.主页面(HOMEPAGE.jsp)
%@pagecontentType="
text/html"
pageEncoding="
UTF-8"
!
DOCTYPEhtml>
head>
metahttp-equiv="
Content-Type"
content="
charset=UTF-8"
title>
网上选票系统<
/title>
styletype="
text/css"
h1,h2,h3,h4,h5,h6{display:
inline;
}
/style>
/head>
bodybackground="
/WebApplication2/images/background1.jpeg"
style>
.test{
font-size:
40px;
color:
#FFD700;
font-style:
italic;
.red{
30px;
#FF0000;
inherit;
center>
h1>
网上在线<
/h1>
h1class="
test"
图片投票<
系统<
/center>
p>
/p>
divalign="
left"
red"
活动细则<
h3>
1.对动漫有强烈爱好者都可报名参与比赛!
/h3>
2.凡是参赛者必须上传一张你认为最美的动漫图片<
3.每位参赛者都且仅有一张选票,可投给心目中最美的动漫图片<
4.一台电脑只允许投一张票<
5.点击下方火影图片立即参与投票<
6.点击下方死神图片立即报名参与比赛<
7.点击下方海贼图片进入管理员登陆界面<
8.活动截止日期2013年7月13日<
/div>
ahref="
VOTE.jsp"
images/huoying.jpg"
width="
150"
height="
alt="
huoying"
/>
/a>
APPLY.jsp"
images/sishen.jpg"
sishen"
LOGIN.jsp"
images/haizei.jpg"
haizei"
2.参赛报名页面(APPLY.jsp)
gb2312"
参加比赛<
/WebApplication2/images/background2.jpg"
60px;
.blue{
#0000FF;
.white{
24px;
#FFFF00;
blue"
比赛<
h1>
报名<
管理<
formaction="
APPLYDEAL.jsp"
method="
post"
enctype="
multipart/form-data"
center"
white"
请填写详细信息<
ahref="
HOMEPAGE.jsp"
>
点击返回主界面<
/a>
tablewidth="
52%"
border="
3"
align="
trbgcolor="
#FFFFCC"
tdalign='
center'
43%"
姓名:
/td>
tdwidth="
57"
inputtype="
text"
name="
name"
/tr>
性别:
sex"
参赛宣言:
200"
apply"
选择你要参赛的图片:
file"
photo"
value="
/>
/table>
palign="
submit"
提交"
Submit"
Reset"
重置"
/form>
3.参赛报名处理页面(APPLYDEAL.jsp)
文件上传处理页面<
Stringurl="
upload/"
;
Stringsaveurl="
su.initialize(pageContext);
//上传
intcount=su.save("
//保存到文件夹upload
Stringname=su.getRequest().getParameter("
Stringsex=su.getRequest().getParameter("
Stringcontent=su.getRequest().getParameter("
//获取参赛选手的姓名
if(name.length()==0||sex.length()==0||content.length()==0){
out.println("
输入信息不完整,请返回重新输入"
返回<
}
else{
if(count>
0){
out.println(count+"
个文件上传成功!
br>
com.jspsmart.upload.FilemyFile=su.getFiles().getFile(0);
StringmyFileName=myFile.getFileName();
//获得图片名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JSP 在线 图片 投票 系统 源文件
![提示](https://static.bingdoc.com/images/bang_tan.gif)