本系统采用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
package
cn.hxex.vote.action;

import
java.io.IOException;
import
java.util.Iterator;

import
javax.servlet.ServletException;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;

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

import
cn.hxex.vote.dao.IVoteDAO;
import
cn.hxex.vote.model.Vote;
import
cn.hxex.vote.model.Voteitems;
import
cn.hxex.vote.util.DAOFactory;


public
class
ChartServlet
extends
HttpServlet
...
{


/***//**
*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
*/
package
cn.hxex.vote.action;

import
java.util.Iterator;

import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;

import
org.apache.struts.action.Action;
import
org.apache.struts.action.ActionForm;
import
org.apache.struts.action.ActionForward;
import
org.apache.struts.action.ActionMapping;

import
cn.hxex.vote.dao.IVoteDAO;
import
cn.hxex.vote.model.Vote;
import
cn.hxex.vote.model.Voteitems;
import
cn.hxex.vote.util.DAOFactory;


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

public
class
VoteAction
extends
Action
...
{

/**//*
*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
*/
package
cn.hxex.vote.action;

import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;

import
org.apache.struts.action.Action;
import
org.apache.struts.action.ActionForm;
import
org.apache.struts.action.ActionForward;
import
org.apache.struts.action.ActionMapping;

import
cn.hxex.vote.dao.IVoteDAO;
import
cn.hxex.vote.model.Vote;
import
cn.hxex.vote.util.DAOFactory;


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

public
class
VoteDeleteAction
extends
Action
...
{

/**//*
*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
*/
package
cn.hxex.vote.action;

import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;

import
org.apache.struts.action.Action;
import
org.apache.struts.action.ActionForm;
import
org.apache.struts.action.ActionForward;
import
org.apache.struts.action.ActionMapping;

import
cn.hxex.vote.dao.IVoteDAO;
import
cn.hxex.vote.model.Vote;
import
cn.hxex.vote.util.DAOFactory;


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