本系统采用Struts + Hibernate 作为主题框架
数据库采用Mysql
开源包使用JSTL+JFreeChart
项目结构如下:
action
ChartServlet.java
VoteAction.java
VoteDeleteAction.java
VoteEditAction.java
VoteitemDeleteAction.java
VoteitemEditAction.java
VoteitemListAction.java
VoteitemSaveAction.java
VoteManageAction.java
VoteSaveAction.java
dao
IVoteDAO.java
VoteDAO.java
sql
script.sql
model
vote.hbm.xml
voteItem.hbm.xml
Vote.java
Voteitems.java
util
DAOFactory.java
HibernateDAO.java
HibernateFilter.java
HibernateUtil.java
SelectConst.java
VoteFunction.java
ChartServlet
packagecn.hxex.vote.action;

importjava.io.IOException;
importjava.util.Iterator;

importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importorg.jfree.chart.ChartFactory;
importorg.jfree.chart.ChartUtilities;
importorg.jfree.chart.JFreeChart;
importorg.jfree.chart.plot.PlotOrientation;
importorg.jfree.data.category.DefaultCategoryDataset;
importorg.jfree.data.general.DefaultPieDataset;

importcn.hxex.vote.dao.IVoteDAO;
importcn.hxex.vote.model.Vote;
importcn.hxex.vote.model.Voteitems;
importcn.hxex.vote.util.DAOFactory;


publicclassChartServletextendsHttpServlet...{


/***//**
*Constructoroftheobject.
*/

publicChartServlet()...{
super();
}


/***//**
*Destructionoftheservlet.<br>
*/

publicvoiddestroy()...{
super.destroy();//Justputs"destroy"stringinlog
//Putyourcodehere
}


publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException...{

doPost(request,response);
}


publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException...{

Stringid=request.getParameter("id");
IVoteDAOvotedao=DAOFactory.getVoteDAO();
Votevote=votedao.getVote(id);
JFreeChartchart=getChart(vote);
response.setContentType("image/jpeg");
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),100,chart,400,300);


}


publicstaticJFreeChartgetChart(Votevote)...{
JFreeChartchart=null;

if(vote.getPictype().indexOf("PIE")==0)...{
DefaultPieDatasetdate=newDefaultPieDataset();
Iteratoriter=vote.getVoteitems().iterator();

while(iter.hasNext())...{
Voteitemsvi=(Voteitems)iter.next();
date.setValue(vi.getTitle(),vi.getVotenum());
}

if("PIE".equals(vote.getPictype()))...{
chart=ChartFactory.createPieChart(vote.getTitle(),date,false,false,false);

}else...{
chart=ChartFactory.createPieChart3D(vote.getTitle(),date,false,false,false);
}


}else...{
DefaultCategoryDatasetdate=newDefaultCategoryDataset();
Iteratorit=vote.getVoteitems().iterator();

while(it.hasNext())...{
Voteitemsvi=(Voteitems)it.next();
date.addValue(vi.getVotenum(),"选项",vi.getTitle());

}

if("BAR".equals(vote.getPictype()))...{
chart=ChartFactory.createBarChart(vote.getTitle(),"选项","数量",date,PlotOrientation.VERTICAL,false,false,false);
}

else...{
chart=ChartFactory.createBarChart3D(vote.getTitle(),"选项","数量",date,PlotOrientation.VERTICAL,false,false,false);
}
}
returnchart;

}

publicvoidinit()throwsServletException...{
//Putyourcodehere
}

}
VoteAction

/**//*
*GeneratedbyMyEclipseStruts
*Templatepath:templates/java/JavaClass.vtl
*/
packagecn.hxex.vote.action;

importjava.util.Iterator;

importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;

importcn.hxex.vote.dao.IVoteDAO;
importcn.hxex.vote.model.Vote;
importcn.hxex.vote.model.Voteitems;
importcn.hxex.vote.util.DAOFactory;


/***//**
*MyEclipseStruts
*Creationdate:02-11-2007
*
*XDocletdefinition:
*@struts.actionvalidate="true"
*@struts.action-forwardname="success"path="123"
*/

publicclassVoteActionextendsAction...{

/**//*
*GeneratedMethods
*/


/***//**
*Methodexecute
*@parammapping
*@paramform
*@paramrequest
*@paramresponse
*@returnActionForward
*/
publicActionForwardexecute(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse)...{
Stringid=request.getParameter("id");
IVoteDAOvoteDao=DAOFactory.getVoteDAO();
Votevote=voteDao.getVote(id);

String[]voteitem=request.getParameterValues(id);

if(voteitem!=null&voteitem.length>0)...{

for(inti=0;i<voteitem.length;i++)...{
Iteratoriter=vote.getVoteitems().iterator();

while(iter.hasNext())...{
Voteitemsvi=(Voteitems)iter.next();

if(voteitem[i].equals(vi.getId()))...{
vi.increaseVotenum();
break;
}
}
}
}
request.setAttribute("vote",vote);
returnmapping.findForward("success");
}
}
VoteDeleteAction

/**//*
*GeneratedbyMyEclipseStruts
*Templatepath:templates/java/JavaClass.vtl
*/
packagecn.hxex.vote.action;

importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;

importcn.hxex.vote.dao.IVoteDAO;
importcn.hxex.vote.model.Vote;
importcn.hxex.vote.util.DAOFactory;


/***//**
*MyEclipseStruts
*Creationdate:02-11-2007
*
*XDocletdefinition:
*@struts.actionvalidate="true"
*@struts.action-forwardname="success"path="123"
*/

publicclassVoteDeleteActionextendsAction...{

/**//*
*GeneratedMethods
*/


/***//**
*Methodexecute
*@parammapping
*@paramform
*@paramrequest
*@paramresponse
*@returnActionForward
*/
publicActionForwardexecute(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse)...{
IVoteDAOvoteDao=DAOFactory.getVoteDAO();
Stringid=request.getParameter("id");

Votevote=voteDao.getVote(id);
voteDao.deleteVote(vote);



request.setAttribute("vote",vote);

returnmapping.findForward("success");
}
}

/**//*
*GeneratedbyMyEclipseStruts
*Templatepath:templates/java/JavaClass.vtl
*/
packagecn.hxex.vote.action;

importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;

importcn.hxex.vote.dao.IVoteDAO;
importcn.hxex.vote.model.Vote;
importcn.hxex.vote.util.DAOFactory;


/***//**
*MyEclipseStruts
*Creationdate:02-11-2007
