最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx

上传人:b****4 文档编号:24238138 上传时间:2023-05-25 格式:DOCX 页数:23 大小:93.49KB
下载 相关 举报
最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx_第1页
第1页 / 共23页
最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx_第2页
第2页 / 共23页
最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx_第3页
第3页 / 共23页
最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx_第4页
第4页 / 共23页
最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx

《最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx》由会员分享,可在线阅读,更多相关《最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx(23页珍藏版)》请在冰豆网上搜索。

最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx

最新毕业设计基于struts2SpringHibernate构建一个网上投票系统

《JavaEE》课程设计报告

题目名称:

基于struts2、Spring、Hibernate

构建一个网上投票系统

指导教师:

__________王振飞_____________

专业班级:

__机械2011级___________

组长:

__________董建华___________

成员:

__娄宇杨浩亮张益民林强____

电子邮件:

____15224891@________

 

设计时间:

2011年11月16日至

2011年12月21日

 

成绩:

______

 

基于struts2、Spring、Hibernate构建一个网上投票系统

一、问题描述及设计思路

对于开发一个投票管理系统来说,应该实现什么功能,如何实现这个功能都是开发人员必须了解的问题。

将这个系统的需求、业务流程以及用例进行细致的分析、讲解。

1.1需求分析

随着网络应用的日益普及,投票的形式也发生了很大的变化。

目前在很多的场合,投票已经开始由原始方式转变为网上投票。

由于具有方便、快捷、成本低、调查范围广等优点,网上投票已经被广泛的应用。

如何管理好网上投票信息内容也变得十分的重要,我们所设计开发的投票管理系统,正是基于这种需求诞生的。

本投票管理系统分为用户提供网上投票和投票信息管理两大类功能。

通过投票管理功能可以完成增加新投票、修改原有投票信息、查找投票等功能。

本系统的界面友好、操作简便,适用于任何网站进行投票调查。

本系统的基本功能如下所述。

●使用本系统的网上投票功能,用户只要登录指定的网页,就可以进行投票操作,并可以得到投票结果信息。

●使用本网站的登录功能,管理员可以登录系统,然后对相关的信息进行管理。

●使用本系统的创建投票功能,管理员可以创建一个新的投票功能。

●使用本系统的管理投票功能,管理员可以对系统已经存在的投票进行更新,包括增加投票子选项、删除投票子选项、修改投票类型、更改投票状态。

●使用本系统的查找投票功能,管理员可以通过输入部分或者全部的投票主题查找对应的投票信息。

●使用本系统的管理员管理功能,管理员可以修改本人的密码或者创建一个新的管理员。

●使用本系统的注销功能,管理员可以安全的退出本系统。

1.2业务分析

投票管理系统由前台和后台两部分组成:

前台显示投票并可以执行投票操作,后台是对投票信息和管理员信息进行管理。

下面分别从使用前台和使用后台两个角度来分析本系统的业务流程。

1.2.1显示投票

用户进入投票页面如图,进行投票操作。

1.2.2管理投票

1.2.2.1后台登录页面

只有管理员可以进入后台对相关的信息进行维护,管理员在维护信息之前必须先登录系统。

1.2.2.2后台主页面

当成功登录系统后进入后台主页面,在后台主页面的左侧显示欢迎信息和系统当前所有投票数量信息。

同时该页面提供了相关操作的链接,单击相应的链接即可进行相应的操作。

各链接具体实现的业务如下。

●管理投票链接:

当管理员单击“投票管理”的文字或者图标链接后,进入管理投票页面,可以对系统已有投票信息进行维护。

●创建投票链接当管理员单击“创建投票”的文字或者图标链接后,进入创建投票页面,可以增加新的投票选项。

●查找投票链接:

当管理员单击“查找投票”的文字或者图标后,进入查找投票页面,可以根据所输入的投票主题信息(可以是完整的,也可以是关键字)在系统已有的投票中进行查找。

●管理员管理连接:

当管理员单击“管理员管理”链接后,进入管理员管理页面,可以修改当前管理员密码,增加新的管理员。

●投票主页链接:

当管理员单击“投票主页”链接后,可以跳转到后台主页面。

●注销链接:

当管理员单击“注销后“链接后,可以安全退出系统。

 

1.3投票用例

Ø用例名称:

投票

简要说明:

允许所有用户进行投票操作

基本事件流:

(1)用户进入投票页面

(2)系统显示投票主题及投票内容

(3)用户进行投票

(4)系统显示投票结果

(5)用例结束

异常事件流:

(1)投票已经关闭,系统给出错误提示

(2)用户所在IP已经投过票,系统出现错误提示

Ø用例名称:

创建投票

简要说明:

允许管理员创建新投票

前置条件:

管理员已经登录后台系统

基本事件流:

(1)管理员进入创建投票页面

(2)管理员填写新投票主题相关信息并单击下一步

(3)管理员填写新投票选项信息并单击下一步

(4)系统增加新投票信息并显示

(5)用例结束

异常事件流:

(1)填写信息错误,系统给出提示信息

(2)管理员中途单击其他页面链接,跳转相应页面

Ø用例名称:

查找投票

Ø简要说明:

允许管理员查找投票

前置条件:

管理员已经登录后台系统

基本事件流:

(1)管理员进入查找投票页面

(2)管理员输入完整或部分的投票主题并提交

(3)系统显示查找结果

(4)用例结束

异常事件流:

(1)输入信息有误,系统给出错误提示

(2)数据库没有符合要求的信息,系统给出提示

Ø用例名称:

增加投票选项

简要说明:

允许管理员为某投票主题增加子选项

气质条件:

管理员已经登录后台系统

基本事件流:

(1)管理员进入修改投票信息页面

(2)管理员单击“新增加一个投票选项“链接

(3)管理员输入新增加选项内容

(4)用例结束

异常事件流:

(1)输入信息有误,系统给出错误提示

(2)数据库没有符合要求信息,系统给出提示

Ø用例名称:

删除投票选项

简要说明:

允许管理员删除某投票选项的子选项

气质条件:

管理员已经登录后台系统

基本事件流:

(1)管理员进入修改投票信息页面

(2)管理员单击要删除选项相应的“删除”链接

(3)系统删除相应的选项

(4)用例结束

异常事件流:

当剩余选项个数小于等于2时,继续删除系统提示错误

Ø用例名称:

修改投票选项

简要说明:

允许管理员修改投票信息

前置条件:

管理员已经登录后台系统

基本事件流:

(1)管理员进入修改投票信息页面

(2)管理员修改投票信息并单击“更新”按钮

(3)系统更新投票信息

(4)用例结束

异常信息流:

输入信息有误,系统给出提示

Ø用例名称:

修改密码

简要说明:

允许管理员修改本人的登录密码

前置条件:

管理员已经登录后台系统

基本事件流:

(1)管理员进入修改密码页面

(2)管理员输入信息并提交

(3)系统显示现修改成功

(4)用例结束

异常信息流:

(1)输入信息有误,系统给出错误提示

(2)旧密码输入不正确,系统给出提示

(3)两次输入新密码不一致,系统给出提示

Ø用例名称:

创建新管理员

简要说明:

允许管理员创建一个新管理员

前置条件:

管理员已经登录了后台系统

基本事件流:

(1)管理员进入创建新管理员页面

(2)管理员输入信息并提交

(3)系统显示创建成功

(4)用例结束

异常信息流:

(1)输入信息有误,系统给出错误提示

(2)两次输入密码不一致,系统给出提示

(3)新管理员用户名已存在,系统给出提示

 

二、详细设计过程

到目前为止我们已经对于整个投票系统的需求有了一定的了解,下面将要设计到具体的实现方案。

本节将从两个方面入手进行系统设计,包括技术方案(使用什么样的技术来开发设计这个系统)和数据库设计(本系统设计到的数据信息如何存取)。

下面就是系统设计的详细内容。

通过前面的分析设计,我们已经对整个投票管理系统的工作流程、工程构架有了深入的了解,下面开始进入详细设计和代码的实现过程。

2.1创建Struts2应用

✧在stc根目录添加配置文件struts.Xml

✧修改web.xml文件内容

✧引入jar包

2.2添加Hibernate

✧引入jar包

包括hibernate3.jar、cglib-nodep-2.14_3.jar、dom4j-1.6.1.jar、commons-collections.jar、log4-1.2.13.jar、c3p0.0.90.4.jar、jta.jar、antlr-0.7.

6.jar

✧创建对应数据库的持久化类

一共需要创建4个持久化类,分别为Admin.java、Vote.java、Votecontext.java、Voterjava。

它们各自对应的代码将在具体实现小节中提供

需要注意的是,在写Hibernate持久类的时候,一定要遵循如下所述的规范。

●持久化类符合Javabean的规范,包含一些成员变量,以及与之对应的getter、setter方法

●持久化类有一个ID属性,用来唯一标示Customer类的每一个对象。

在面向对象术语中,这个ID属性被称为对象标识符(OID,ObjectIdentifier),通常它都用整数表示。

●Hibernate要求持久化类必须提供一个不带参数的默认构造方法。

✧创建对象关系映射文件

对应持久化类我们也需要创建4个映射文件,分别为Admin.hbm.xml、Vote.hbm.xml、Voter.hbm.xml、Votecontext.hbm.xml。

它们各自对应的代码将在具体的实现小节中提供。

✧创建Hibernate配置文件hibernate.cfg.xml

2.3添加Spring应用

✧引入jar包

包括spring.jar和sturts2-spring-plugin-2.08.jar

✧创建Spring配置文件applicationContext.xml

✧在Web.xml中添加Spring监听

2.4领域模型层设计

2.4.1持久层设计

持久层是通过Hibernate实现的,采用DAO模式进行的开发设计。

在设计过程中,我们所有的实现类都继承了HibernateDaoSupport,通过Hibernate提供的HQL语言执行数据操作,避免了手写大量SQL语句繁琐、易错的弊端。

具体的实现过程可以分为以下几步。

(1)编写接口

(2)编写实现类

(3)在applicationContext.xml中配置DAO。

2.4.2业务层设计

业务层是一个典型的Web应用程序中是作为中间组件而存在的。

2.4.3表示层设计

✧管理员登录模块设计

后台管理员登录是后台系统管理的入口,只有成功登录系统后才可以进行信息管理。

首先管理员进入登录界面。

输入用户名、密码以及图形校检码并单击“确定”按钮,如果信息无误则进入后台管理系统这页面;如果输入信息有误,系统将给出提示信息。

✧创建投票模块

该模块主要用于系统中添加一个新的投票,包括投票主题,投票类型、投票是否发布、投票选项内容。

输入投票的主题、子选项个数、选择投票类型以及是否马上开放并单击“下一步”按钮。

如过输入有误,系统给出提示信息。

创建投票选项的代码。

确定并单击“下一步”,创建投票流程结束。

✧查看投票信息模块

该模块用来显示目前系统中已经存在的所有投票信息内容。

当管理员单击系统主页面的管理投票链接后,系统显示所有的投票信息。

显示所有的投票信息代码。

✧修改投票信息模块

该模块用来修改系统已存在的投票相关信息。

为了确保信息的公正性,当某个投票信息被更新时,该投票对应投票记录,包括投票票数以及投票人信息都被清空。

当单击投票编号对应的编辑链接,进入修改投票信息界面。

单击新增加一个投票选项,可以为当前投票增加子选项。

增加投票选项的代码。

观察发现,在员原选项下面增加了一个新的选项。

单击投票选项后面的“删除”链接,可以删除对应的选票选项。

✧查找信息模块

该模块允许管理员根据投票主题查找对应的投票信息。

当单击后台主页查找投票链接后,进入查找投票界面。

输入查询的内容并单击“确定”按钮,系统显示符合条件的投票信息。

✧修改密码模块

通过该模块可以修改登录管理员的登录密码。

单击修改密码连接进入修改界面。

输入提示信息并单击“确认”按钮即可修改密码,如果旧密码不正确或者两次输入的新密码不一致,系统会给出错误的提示信息。

✧创建新管理员模块

通过该模块可以创建一个新的管理员。

单击创建新管理员链接,进入创建管理员的界面。

输入相关的信息并单击“确定”按钮可以创建一个新的管理员,如果输入有误或者所输入用户名已经不存在,系统给出错误的提示信息。

✧投票模块

该模块负责显示投票信息给用户并处理投票过程。

当投票人进入投票页面。

选择并单机:

下一步“按钮,系统显示投票结果界面。

 

三、结论和体会

3.1结论

随着网络应用的日益普及,投票的形式也发生了很大的变化。

目前在很多的场合,投票已经开始由原始方式转变为网上投票。

由于具有方便、快捷、成本低、调查范围广等优点,网上投票已经被广泛的应用。

如何管理好网上投票信息内容也变得十分的重要,我们所设计开发的投票管理系统,正是基于这种需求诞生的。

本投票管理系统分为用户提供网上投票和投票信息管理两大类功能。

通过投票管理功能可以完成增加新投票、修改原有投票信息、查找投票等功能。

本系统的界面友好、操作简便,适用于任何网站进行投票调查。

3.2体会

这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。

从做这个课程设计开始无论遇到什么困难,我都没有一丝的放弃的念头。

出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。

我完成了这次课程设计,不过这只是我学习路上的驿站,我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,justdoit!

语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。

古语说的好:

学无止境啊!

我很庆幸我参加了这次课程设计,让我确实打开了眼界。

 

四、附录

附录A其它图表

附录B主要程序代码

创建用户

packagesunyang.vote.action.admin;

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

importjava.util.Date;

importsunyang.vote.action.rootaction.AdminRoot;

importsunyang.vote.domain.Admin;

@SuppressWarnings("serial")

publicclassCreateadminextendsAdminRoot{

privatestaticfinalStringCREATEADMINERROR="createAdminError";

@Override

publicStringexecute()throwsException{

//通过用户名查找管理员信息

Admina=adminService.findAdminByName(name);

//如果不为空,说明已经存在

if(a!

=null){

addActionError(getText("adminexist"));

returnCREATEADMINERROR;

}else{

Datedate=Calendar.getInstance().getTime();

SimpleDateFormatformatter=newSimpleDateFormat(

"yyyy-MM-ddHH:

mm:

ss");

StringdateString=formatter.format(date);

Adminadmin=newAdmin();

admin.setName(name);

admin.setPassword(newpwd1);

admin.setLogintime(dateString);

adminService.addAdmin(admin);

returnSUCCESS;

}

}

 

登录界面

packagesunyang.vote.action.admin;

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

importjava.util.Date;

importjavax.servlet.http.HttpSession;

importorg.apache.struts2.ServletActionContext;

importsunyang.vote.action.rootaction.AdminRoot;

importsunyang.vote.domain.Admin;

importsunyang.vote.domain.Count;

@SuppressWarnings("serial")

publicclassLoginextendsAdminRoot{

@Override

publicStringexecute()throwsException{

HttpSessionsession=ServletActionContext.getRequest().getSession();

if(session.getAttribute("rand")==null){

returnERROR;

}

//获得图形校验码

Stringsf=(String)session.getAttribute("rand");

//如果图形校验码正确,判断帐号、密码是否正确

if(sf.equals(safecode)){

Adminadmin=adminService.findAdmin(name,password);

if(admin==null){

addActionError(getText("loginerror"));

returnERROR;

}else{

//将admin信息存入session

session.setAttribute("admin",admin);

Countcount2=newCount();

//设置单选投票个数

count2.setSingleCount(voteService.findVoteCountByType(newInteger

(1)));

//设置多选投票个数

count2.setMultiCount(voteService.findVoteCountByType(newInteger(0)));

//设置所有投票个数

count2.setAllCount(voteService.findVoteCount());

session.setAttribute("count2",count2);

//获得当前系统时间并格式化,存入管理员登录时间

Datedate=Calendar.getInstance().getTime();

SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

StringdateString=formatter.format(date);

admin.setLogintime(dateString);

//更新管理员登录时间信息

adminService.updatelogintime(admin);

returnSUCCESS;

}

}else{

addActionError(getText("codeerror"));

returnERROR;

}

}

}

退出登录

packagesunyang.vote.action.admin;

importjavax.servlet.http.HttpSession;

importorg.apache.struts2.ServletActionContext;

importcom.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")

publicclassLogoutextendsActionSupport{

@Override

publicStringexecute()throwsException{

HttpSessionsession=ServletActionContext.getRequest().getSession();

session.invalidate();

returnSUCCESS;

}

}

投票根目录

packagesunyang.vote.action.rootaction;

importjava.util.List;

importjava.util.Map;

importsunyang.vote.service.VoteContextService;

importsunyang.vote.service.VoteService;

importsunyang.vote.domain.*;

importcom.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")

publicclassVoteContextRootextendsActionSupport{

/**

*@paramcontext

*子选项内容,数组类型

*@paramvoteId

*投票编号

*@paramlist

*@paramlist2

*封装投票结果信息

*@paramvotecontextId

*投票子选项编号

*@paramtype

*投票类型

*@parampublish

*是否发布

*@parammap

*封装投票选项编号及内容

*/

protectedVoteContextServicevoteContextService;

protectedVoteServicevoteService;

protectedString[]context;

protectedIntegervoteId;

protectedListlist2;

protectedIntegervotecontextId;

protectedIntegertype;

protectedIntegerpublish;

protectedMapmap;

publicInteger

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1