ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:93.49KB ,
资源ID:24238138      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24238138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新毕业设计基于struts2SpringHibernate构建一个网上投票系统.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、最新毕业设计基于struts2SpringHibernate构建一个网上投票系统JavaEE课程设计报告题目名称:基于struts2、Spring、Hibernate构建一个网上投票系统指导教师:_ _王振飞_ _专业班级:_ 机械2011级_ _ _组 长:_ _董建华 _ _ 成 员:_ 娄宇 杨浩亮 张益民 林强 _ _电子邮件:_ 15224891_ _ _设计时间: 2011 年 11 月 16 日 至 2011 年 12 月 21 日成绩:_基于struts2、Spring、Hibernate构建一个网上投票系统一、问题描述及设计思路对于开发一个投票管理系统来说,应该实现什么功能,

2、如何实现这个功能都是开发人员必须了解的问题。将这个系统的需求、业务流程以及用例进行细致的分析、讲解。1.1 需求分析随着网络应用的日益普及,投票的形式也发生了很大的变化。目前在很多的场合,投票已经开始由原始方式转变为网上投票。由于具有方便、快捷、成本低、调查范围广等优点,网上投票已经被广泛的应用。如何管理好网上投票信息内容也变得十分的重要,我们所设计开发的投票管理系统,正是基于这种需求诞生的。本投票管理系统分为用户提供网上投票和投票信息管理两大类功能。通过投票管理功能可以完成增加新投票、修改原有投票信息、查找投票等功能。本系统的界面友好、操作简便,适用于任何网站进行投票调查。 本系统的基本功能

3、如下所述。 使用本系统的网上投票功能,用户只要登录指定的网页,就可以进行投票操作,并可以得到投票结果信息。 使用本网站的登录功能,管理员可以登录系统,然后对相关的信息进行管理。 使用本系统的创建投票功能,管理员可以创建一个新的投票功能。 使用本系统的管理投票功能,管理员可以对系统已经存在的投票进行更新,包括增加投票子选项、删除投票子选项、修改投票类型、更改投票状态。 使用本系统的查找投票功能,管理员可以通过输入部分或者全部的投票主题查找对应的投票信息。 使用本系统的管理员管理功能,管理员可以修改本人的密码或者创建一个新的管理员。 使用本系统的注销功能,管理员可以安全的退出本系统。1.2业务分析

4、投票管理系统由前台和后台两部分组成:前台显示投票并可以执行投票操作,后台是对投票信息和管理员信息进行管理。下面分别从使用前台和使用后台两个角度来分析本系统的业务流程。1.2.1 显示投票用户进入投票页面如图,进行投票操作。1.2.2管理投票1.2.2.1后台登录页面只有管理员可以进入后台对相关的信息进行维护,管理员在维护信息之前必须先登录系统。1.2.2.2 后台主页面当成功登录系统后进入后台主页面,在后台主页面的左侧显示欢迎信息和系统当前所有投票数量信息。同时该页面提供了相关操作的链接,单击相应的链接即可进行相应的操作。各链接具体实现的业务如下。 管理投票链接:当管理员单击“投票管理”的文字

5、或者图标链接后,进入管理投票页面,可以对系统已有投票信息进行维护。 创建投票链接当管理员单击“创建投票”的文字或者图标链接后,进入创建投票页面,可以增加新的投票选项。 查找投票链接:当管理员单击“查找投票”的文字或者图标后,进入查找投票页面,可以根据所输入的投票主题信息(可以是完整的,也可以是关键字)在系统已有的投票中进行查找。 管理员管理连接:当管理员单击“管理员管理”链接后,进入管理员管理页面,可以修改当前管理员密码,增加新的管理员。 投票主页链接:当管理员单击“投票主页”链接后,可以跳转到后台主页面。 注销链接:当管理员单击“注销后“链接后,可以安全退出系统。1.3投票用例 用例名称:投

6、票简要说明:允许所有用户进行投票操作基本事件流:(1) 用户进入投票页面(2) 系统显示投票主题及投票内容(3) 用户进行投票(4) 系统显示投票结果(5) 用例结束 异常事件流:(1) 投票已经关闭,系统给出错误提示(2) 用户所在IP已经投过票,系统出现错误提示 用例名称:创建投票简要说明:允许管理员创建新投票前置条件:管理员已经登录后台系统基本事件流:(1) 管理员进入创建投票页面(2) 管理员填写新投票主题相关信息并单击下一步(3) 管理员填写新投票选项信息并单击下一步(4) 系统增加新投票信息并显示(5) 用例结束异常事件流:(1) 填写信息错误,系统给出提示信息(2) 管理员中途单

7、击其他页面链接,跳转相应页面 用例名称:查找投票 简要说明:允许管理员查找投票前置条件:管理员已经登录后台系统基本事件流:(1) 管理员进入查找投票页面(2) 管理员输入完整或部分的投票主题并提交(3) 系统显示查找结果(4) 用例结束异常事件流:(1) 输入信息有误,系统给出错误提示(2) 数据库没有符合要求的信息,系统给出提示 用例名称:增加投票选项简要说明:允许管理员为某投票主题增加子选项气质条件:管理员已经登录后台系统基本事件流:(1) 管理员进入修改投票信息页面(2) 管理员单击“新增加一个投票选项“链接(3) 管理员输入新增加选项内容(4) 用例结束异常事件流:(1) 输入信息有误

8、,系统给出错误提示(2) 数据库没有符合要求信息,系统给出提示 用例名称:删除投票选项简要说明:允许管理员删除某投票选项的子选项气质条件:管理员已经登录后台系统基本事件流:(1) 管理员进入修改投票信息页面(2) 管理员单击要删除选项相应的“删除”链接(3) 系统删除相应的选项(4) 用例结束异常事件流:当剩余选项个数小于等于2时,继续删除系统提示错误 用例名称:修改投票选项简要说明:允许管理员修改投票信息前置条件:管理员已经登录后台系统基本事件流:(1) 管理员进入修改投票信息页面(2) 管理员修改投票信息并单击“更新”按钮(3) 系统更新投票信息(4) 用例结束异常信息流:输入信息有误,系

9、统给出提示 用例名称:修改密码简要说明:允许管理员修改本人的登录密码前置条件:管理员已经登录后台系统基本事件流:(1) 管理员进入修改密码页面(2) 管理员输入信息并提交(3) 系统显示现修改成功(4) 用例结束异常信息流:(1) 输入信息有误,系统给出错误提示(2) 旧密码输入不正确,系统给出提示(3) 两次输入新密码不一致,系统给出提示 用例名称:创建新管理员简要说明:允许管理员创建一个新管理员前置条件:管理员已经登录了后台系统基本事件流:(1) 管理员进入创建新管理员页面(2) 管理员输入信息并提交(3) 系统显示创建成功(4) 用例结束异常信息流:(1) 输入信息有误,系统给出错误提示

10、(2) 两次输入密码不一致,系统给出提示(3) 新管理员用户名已存在,系统给出提示二、详细设计过程到目前为止我们已经对于整个投票系统的需求有了一定的了解,下面将要设计到具体的实现方案。本节将从两个方面入手进行系统设计,包括技术方案(使用什么样的技术来开发设计这个系统)和数据库设计(本系统设计到的数据信息如何存取)。下面就是系统设计的详细内容。 通过前面的分析设计,我们已经对整个投票管理系统的工作流程、工程构架有了深入的了解,下面开始进入详细设计和代码的实现过程。2.1 创建Struts2应用 在stc根目录添加配置文件struts.Xml 修改web.xml文件内容 引入jar包2.2 添加H

11、ibernate 引入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

12、的规范,包含一些成员变量,以及与之对应的getter、setter方法 持久化类有一个ID属性,用来唯一标示Customer类的每一个对象。在面向对象术语中,这个ID属性被称为对象标识符(OID,Object Identifier),通常它都用整数表示。 Hibernate要求持久化类必须提供一个不带参数的默认构造方法。 创建对象关系映射文件对应持久化类我们也需要创建4个映射文件,分别为Admin.hbm.xml、Vote.hbm.xml、Voter.hbm.xml、Votecontext.hbm.xml。它们各自对应的代码将在具体的实现小节中提供。 创建Hibernate配置文件hibern

13、ate.cfg.xml2.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)

14、 编写实现类(3) 在applicationContext.xml中配置DAO。2.4.2 业务层设计业务层是一个典型的Web应用程序中是作为中间组件而存在的。2.4.3 表示层设计 管理员登录模块设计后台管理员登录是后台系统管理的入口,只有成功登录系统后才可以进行信息管理。首先管理员进入登录界面。输入用户名、密码以及图形校检码并单击“确定”按钮,如果信息无误则进入后台管理系统这页面;如果输入信息有误,系统将给出提示信息。 创建投票模块该模块主要用于系统中添加一个新的投票,包括投票主题,投票类型、投票是否发布、投票选项内容。输入投票的主题、子选项个数、选择投票类型以及是否马上开放并单击“下一步

15、”按钮。如过输入有误,系统给出提示信息。创建投票选项的代码。确定并单击“下一步”,创建投票流程结束。 查看投票信息模块该模块用来显示目前系统中已经存在的所有投票信息内容。当管理员单击系统主页面的管理投票链接后,系统显示所有的投票信息。显示所有的投票信息代码。 修改投票信息模块 该模块用来修改系统已存在的投票相关信息。为了确保信息的公正性,当某个投票信息被更新时,该投票对应投票记录,包括投票票数以及投票人信息都被清空。当单击投票编号对应的编辑链接,进入修改投票信息界面。单击新增加一个投票选项,可以为当前投票增加子选项。增加投票选项的代码。观察发现,在员原选项下面增加了一个新的选项。单击投票选项后

16、面的“删除”链接,可以删除对应的选票选项。 查找信息模块该模块允许管理员根据投票主题查找对应的投票信息。当单击后台主页查找投票链接后,进入查找投票界面。输入查询的内容并单击“确定”按钮,系统显示符合条件的投票信息。 修改密码模块通过该模块可以修改登录管理员的登录密码。单击修改密码连接进入修改界面。输入提示信息并单击“确认”按钮即可修改密码,如果旧密码不正确或者两次输入的新密码不一致,系统会给出错误的提示信息。 创建新管理员模块通过该模块可以创建一个新的管理员。单击创建新管理员链接,进入创建管理员的界面。输入相关的信息并单击“确定”按钮可以创建一个新的管理员,如果输入有误或者所输入用户名已经不存

17、在,系统给出错误的提示信息。 投票模块该模块负责显示投票信息给用户并处理投票过程。当投票人进入投票页面。选择并单机:下一步“按钮,系统显示投票结果界面。三、结论和体会3.1 结论随着网络应用的日益普及,投票的形式也发生了很大的变化。目前在很多的场合,投票已经开始由原始方式转变为网上投票。由于具有方便、快捷、成本低、调查范围广等优点,网上投票已经被广泛的应用。如何管理好网上投票信息内容也变得十分的重要,我们所设计开发的投票管理系统,正是基于这种需求诞生的。本投票管理系统分为用户提供网上投票和投票信息管理两大类功能。通过投票管理功能可以完成增加新投票、修改原有投票信息、查找投票等功能。本系统的界面

18、友好、操作简便,适用于任何网站进行投票调查。3.2 体会这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个课程设计开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次课程设计,不过这只是我学习路上的驿站,我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊! 我很庆幸我参加了这次课程设计,让我确实打开了眼界。

19、四、附录附录 A 其它图表附录 B 主要程序代码创建用户package sunyang.vote.action.admin;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import sunyang.vote.action.rootaction.AdminRoot;import sunyang.vote.domain.Admin;SuppressWarnings(serial)public class Createadmin extends AdminRoot private

20、static final String CREATEADMINERROR = createAdminError; Override public String execute() throws Exception /通过用户名查找管理员信息 Admin a = adminService.findAdminByName(name); /如果不为空,说明已经存在 if (a != null) addActionError(getText(adminexist); return CREATEADMINERROR; else Date date = Calendar.getInstance().get

21、Time(); SimpleDateFormat formatter = new SimpleDateFormat( yyyy-MM-dd HH:mm:ss); String dateString = formatter.format(date); Admin admin = new Admin(); admin.setName(name); admin.setPassword(newpwd1); admin.setLogintime(dateString); adminService.addAdmin(admin); return SUCCESS; 登录界面package sunyang.v

22、ote.action.admin;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import sunyang.vote.action.rootaction.AdminRoot;import sunyang.vote.domain.Admin;import sunyang.vote.domain.Count;Su

23、ppressWarnings(serial)public class Login extends AdminRoot Override public String execute() throws Exception HttpSession session = ServletActionContext.getRequest().getSession(); if(session.getAttribute(rand)=null) return ERROR; /获得图形校验码 String sf = (String) session.getAttribute(rand); /如果图形校验码正确,判断

24、帐号、密码是否正确 if (sf.equals(safecode) Admin admin = adminService.findAdmin(name, password); if (admin = null) addActionError(getText(loginerror); return ERROR; else /将admin信息存入session session.setAttribute(admin, admin); Count count2 = new Count(); /设置单选投票个数 count2.setSingleCount(voteService.findVoteCoun

25、tByType(new Integer(1); /设置多选投票个数 count2.setMultiCount(voteService.findVoteCountByType(new Integer(0); /设置所有投票个数 count2.setAllCount(voteService.findVoteCount(); session.setAttribute(count2, count2); /获得当前系统时间并格式化,存入管理员登录时间 Date date = Calendar.getInstance().getTime(); SimpleDateFormat formatter = ne

26、w SimpleDateFormat(yyyy-MM-dd HH:mm:ss); String dateString = formatter.format(date); admin.setLogintime(dateString); /更新管理员登录时间信息 adminService.updatelogintime(admin); return SUCCESS; else addActionError(getText(codeerror); return ERROR; 退出登录package sunyang.vote.action.admin;import javax.servlet.http

27、.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;SuppressWarnings(serial)public class Logout extends ActionSupport Override public String execute() throws Exception HttpSession session = ServletActionContext.getRequest().getSession(); session.i

28、nvalidate(); return SUCCESS; 投票根目录package sunyang.vote.action.rootaction;import java.util.List;import java.util.Map;import sunyang.vote.service.VoteContextService;import sunyang.vote.service.VoteService;import sunyang.vote.domain.*;import com.opensymphony.xwork2.ActionSupport;SuppressWarnings(serial

29、)public class VoteContextRoot extends ActionSupport /* * param context * 子选项内容,数组类型 * param voteId * 投票编号 * param list * param list2 * 封装投票结果信息 * param votecontextId * 投票子选项编号 * param type * 投票类型 * param publish * 是否发布 * param map * 封装投票选项编号及内容 */ protected VoteContextService voteContextService; protected VoteService voteService; protected String context; protected Integer voteId; protected List list2; protected Integer votecontextId; protected Integer type; protected Integer publish; protected Map map; public Integer

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

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