本系统采用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");
}
}
相关推荐
### J2EE电子商务系统开发从入门到精通——基于Struts和Hibernate技术实现 #### J2EE概论 **1.1 简单双层架构到复杂多层架构** - **1.1.1 双层(C/S)软件架构设计** - 双层架构(客户端/服务器架构,Client/...
### J2EE电子商务系统开发从入门到精通:基于Struts和Hibernate技术实现 #### J2EE概论 在深入探讨如何使用Struts和Hibernate技术来构建一个完整的电子商务系统之前,我们首先需要理解J2EE的基本概念及其体系架构...
### J2EE电子商务系统开发从入门到精通:基于Struts和Hibernate技术实现 #### J2EE概论 - **双层架构与多层架构的区别**: - 双层架构通常指的是客户端/服务器(Client/Server, C/S)架构,这种架构下的应用程序在...
- **投票管理系统**:通过具体的案例分析,展示了Struts2在实际项目中的应用。 - **无纸化办公管理系统**:另一个实例,进一步加深对Struts2的理解。 - **数据采集系统**:介绍如何使用Struts2来构建数据采集系统,...
- **投票管理系统**:通过一个完整的投票管理系统的开发案例,展示了Struts2在实际项目中的应用。 - **无纸化办公管理系统**:另一个案例研究,重点在于如何利用Struts2来构建高效的企业级应用。 - **数据采集系统**...
- **投票管理系统**:通过一个投票管理系统的实例,展示Struts2与其他技术(如Hibernate、Spring)的集成应用。 - **无纸化办公管理系统**:介绍如何利用Struts2框架构建一个无纸化办公系统。 - **数据采集系统**:...
- **实战案例**:通过具体的项目案例进一步加深对Struts2的理解,包括投票管理系统、无纸化办公管理系统、数据采集系统等。 以上内容概括了Struts2系列教程的主要知识点,旨在帮助读者从零开始学习并掌握Struts2...
- **投票管理系统**:分析一个完整的投票管理系统项目。 - **无纸化办公管理系统**:探讨一个无纸化办公管理系统的开发过程。 - **数据采集系统**:介绍一个数据采集系统的实现细节。 #### 总结 Struts2是一个功能...