![JavaEE课程设计报告_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/781f6634-8faf-4ccc-a90d-459578eb0671/781f6634-8faf-4ccc-a90d-459578eb06711.gif)
![JavaEE课程设计报告_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/781f6634-8faf-4ccc-a90d-459578eb0671/781f6634-8faf-4ccc-a90d-459578eb06712.gif)
![JavaEE课程设计报告_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/781f6634-8faf-4ccc-a90d-459578eb0671/781f6634-8faf-4ccc-a90d-459578eb06713.gif)
![JavaEE课程设计报告_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/781f6634-8faf-4ccc-a90d-459578eb0671/781f6634-8faf-4ccc-a90d-459578eb06714.gif)
![JavaEE课程设计报告_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/781f6634-8faf-4ccc-a90d-459578eb0671/781f6634-8faf-4ccc-a90d-459578eb06715.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档JavaEE课程设计报告题目名称:基于 struts2 、Spring、Hibernate构建一个网上投票系统成绩:目录基于struts2 、Spring、Hibernate构建一个网上投票系统 2一、问题描述及设计思路 21.1 需求分析 21.2业务分析 31.3投票用例 5二、详细设计过程 102.1 创建 Struts2 应用 102.2 添加 Hibernate 102.3添加Spring应用 122.4领域模型层设计 12三、结论和体会 173.1 结论 173.2体会 17四、附录 18附录A其它图表 18附录B主要程序代码 19五、参考文献 30可编辑基于 struts
2、2 、Spring 、Hibernate 构建一 个网上投票系统一、问题描述及设计思路对于开发一个投票管理系统来说, 应该实现什么功能, 如何实现这个功能都是 开发人员必须了解的问题。 将这个系统的需求、 业务流程以及用例进行细致的分 析、讲解。1.1 需求分析随着网络应用的日益普及, 投票的形式也发生了很大的变化。 目前在很多的场合,投票已经开始由原始方式转变为网上投票。 由于具有方便、 快捷、成本低、调查范围广等优点,网上投票已经被广泛的应用。如何管理好网上投票信息内容也变得十分的重要,我们所设计开发的投票管理系统,正是基于这种需求诞生的。本投票管理系统分为用户提供网上投票和投票信息管理两
3、大类功能。 通过投 票管理功能可以完成增加新投票、 修改原有投票信息、查找投票等功能。本系统 的界面友好、操作简便,适用于任何网站进行投票调查。本系统的基本功能如下所述。使用本系统的网上投票功能, 用户只要登录指定的网页, 就可以进行投票操作, 并可以得到投票结果信息。使用本网站的登录功能,管理员可以登录系统,然后对相关的信息进行管理。使用本系统的创建投票功能,管理员可以创建一个新的投票功能。使用本系统的管理投票功能, 管理员可以对系统已经存在的投票进行更新,包括增加投票子选项、删除投票子选项、修改投票类型、更改投票状态。使用本系统的查找投票功能,管理员可以通过输入部分或者全部的投票主题查找对
4、应的投票信息。使用本系统的管理员管理功能,管理员可以修改本人的密码或者创建一个新的管理 员。使用本系统的注销功能,管理员可以安全的退出本系统。1.2业务分析投票管理系统由前台和后台两部分组成:前台显示投票并可以执行投票操作,后台是对投票信息和管理员信息进行管理。下面分别从使用前台和使用后台两个角度来分析本系统的业务流程。1.2.1显示投票用户进入投票页面如图,进行投票操作。what are you doinr.独舉类型邑单选t冬迪是否歼族 是普hh1.2.2管理投票1.221后台登录页面只有管理员可以进入后台对相关的信息进行维护,管理员在维护信息之前必须先登录系统。n 1 7n后
5、台主页面当成功登录系统后进入后台主页面, 在后台主页面的左侧显示欢迎信息和系 统当前所有投票数量信息。同时该页面提供了相关操作的链接,单击相应的链接 即可进行相应的操作。各链接具体实现的业务如下。管理投票链接:当管理员单击“投票管理”的文字或者图标链接后,进入管理投票页面,可以对系统已有投票信息进行维护。创建投票链接当管理员单击“创建投票”的文字或者图标链接后,进入创建投票页面,可以增加新的投票选项。查找投票链接:当管理员单击“查找投票”的文字或者图标后,进入查 找投票页面,可以根据所输入的投票主题信息(可以是完整的,也可以是关键字)在系统已有的投票中进行查找。管理员管理连接:当管理员单击“管
6、理员管理”链接后,进入管理员管 理页面,可以修改当前管理员密码,增加新的管理员。投票主页链接:当管理员单击“投票主页”链接后,可以跳转到后台主 页面。注销链接:当管理员单击“注销后“链接后,可以安全退出系统。3 2略住戈 *li V W i-p I1.3投票用例?用例名称:投票简要说明:允许所有用户进行投票操作基本事件流:(1)用户进入投票页面(2)系统显示投票主题及投票内容(3)用户进行投票(4)系统显示投票结果(5)用例结束异常事件流:(1)投票已经关闭,系统给出错误提示(2)用户所在 IP 已经投过票,系统出现错误提示用例名称:创建投票简要说明:允许管理员创建新投票前置条件:管理员已经登
7、录后台系统基本事件流:(1)管理员进入创建投票页面(2)管理员填写新投票主题相关信息并单击下一步(3)管理员填写新投票选项信息并单击下一步(4)系统增加新投票信息并显示(5)用例结束异常事件流:(1)填写信息错误,系统给出提示信息(2)管理员中途单击其他页面链接,跳转相应页面用例名称:查找投票简要说明:允许管理员查找投票前置条件:管理员已经登录后台系统基本事件流:(1)管理员进入查找投票页面(2)管理员输入完整或部分的投票主题并提交(3)系统显示查找结果(4)用例结束异常事件流:(1)输入信息有误,系统给出错误提示(2)数据库没有符合要求的信息,系统给出提示用例名称:增加投票选项简要说明:允许
8、管理员为某投票主题增加子选项气质条件:管理员已经登录后台系统基本事件流:(1)管理员进入修改投票信息页面(2)管理员单击“新增加一个投票选项“链接(3)管理员输入新增加选项内容(4)用例结束异常事件流:(1)输入信息有误,系统给出错误提示(2)数据库没有符合要求信息,系统给出提示用例名称:删除投票选项简要说明:允许管理员删除某投票选项的子选项气质条件:管理员已经登录后台系统基本事件流:(1)管理员进入修改投票信息页面(2)管理员单击要删除选项相应的“删除”链接(3)系统删除相应的选项(4)用例结束异常事件流:当剩余选项个数小于等于 2 时,继续删除系统提示错误 用例名称:修改投票选项简要说明:
9、允许管理员修改投票信息 前置条件:管理员已经登录后台系统 基本事件流:(1)管理员进入修改投票信息页面(2)管理员修改投票信息并单击“更新”按钮(3)系统更新投票信息(4)用例结束异常信息流:输入信息有误,系统给出提示用例名称:修改密码 简要说明:允许管理员修改本人的登录密码 前置条件:管理员已经登录后台系统 基本事件流:(1)管理员进入修改密码页面(2)管理员输入信息并提交(3)系统显示现修改成功(4)用例结束异常信息流:(1)输入信息有误,系统给出错误提示(2)旧密码输入不正确,系统给出提示(3)两次输入新密码不一致,系统给出提示?用例名称:创建新管理员简要说明:允许管理员创建一个新管理员
10、前置条件:管理员已经登录了后台系统基本事件流:(1)管理员进入创建新管理员页面(2)管理员输入信息并提交(3)系统显示创建成功(4)用例结束异常信息流:(1)输入信息有误,系统给出错误提示(2)两次输入密码不一致,系统给出提示(3)新管理员用户名已存在,系统给出提示二、详细设计过程到目前为止我们已经对于整个投票系统的需求有了一定的了解, 下面将要设 计到具体的实现方案。 本节将从两个方面入手进行系统设计, 包括技术方案 (使 用什么样的技术来开发设计这个系统) 和数据库设计 (本系统设计到的数据信息 如何存取)。下面就是系统设计的详细内容。通过前面的分析设计,我们已经对整个投票管理系统的工作流
11、程、工程构架有了深入的 了解,下面开始进入详细设计和代码的实现过程。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 、 c3p.jar 、jta.jar 、 antlr-0.7.6.jar创建对应数据库的持久化类一共需要创建 4 个持久化类,分别
12、为 Admin.java 、Vote.java 、 Votecontext.java 、Voterjava 。它们各自对应的代码将在具体实现小节 中提供需要注意的是,在写 Hibernate 持久类的时候,一定要遵循如下所 述的规范。持久化类符合 Javabean 的规范,包含一些成员变量,以及与 之对应的 getter 、setter 方法持久化类有一个 ID 属性,用来唯一标示 Customer 类的每一 个对象。在面向对象术语中,这个 ID 属性被称为对象标识符 (OID , Object Identifier ),通常它都用整数表示。Hibernate 要求持久化类必须提供一个不带参数
13、的默认构造方 法。创建对象关系映射文件对应持久化类 我们也需要创建 4 个映射文件,分 别为 Admin.hbm.xml 、 Vote.hbm.xml 、 Voter.hbm.xml 、 Votecontext.hbm.xml 。它们各自对应的代码将在具体的实现小节中提 供。创建 Hibernate 配置文件 hibernate.cfg.xml2.3 添加 Spring 应用引入 jar 包包括 spring.jar 和 sturts2-spring-plugin-2.08.jar创建 Spring 配置文件 applicationContext.xml在 Web.xml 中添加 Spring
14、 监听2.4 领域模型层设计2.4.1 持久层设计持久层是通过 Hibernate 实现的,采用 DAO 模式进行的开发设计。在 设计过程中,我们所有的实现类都继承了 HibernateDaoSupport ,通过 Hibernate 提供的 HQL 语言执行数据操作, 避免了手写大量 SQL 语句繁琐、 易错的弊端。具体的实现过程可以分为以下几步。1)编写接口2)编写实现类3)在 applicationContext.xml中配置 DAO2.4.2 业务层设计业务层是一个典型的 Web 应用程序中是作为中间组件而存在的。2.4.3 表示层设计管理员登录模块设计后台管理员登录是后台系统管理的入
15、口,只有成功登录系统后才可以进行信息管理管理m登录咗输人用户击柿人密科航!码nl 7n首先管理员进入登录界面。输入用户名、密码以及图形校检码并单击“确定”按钮,如果信息无误则进入后台管理系统这页面 ;如果输入信息有误,系统将给出提示信息。创建投票模块该模块主要用于系统中添加一个新的投票,包括投票主题,投票类型、投票是否发布、投票选项内容。输入投票的主题、子选项个数、选择投票类型以及是否马上开放并单 击“下一步”按钮。如过输入有误,系统给出提示信息。创建投票选项的代码。确定并单击“下一步”,创建投票流程结束查看投票信息模块该模块用来显示目前系统中已经存在的所有投票信息内容。当管理 员单击系统主页
16、面的管理投票链接后,系统显示所有的投票信息。显示 所有的投票信息代码。按具樂几g 5 IHI 背2011-12-07 19r5T:19123开放单请2011-12*09 ZQtll|12J开放?1(hclLo20L1-12-J9 M;L0:駅133 II开戒wh右H. sre yoiu doing帕I L 17 旧 201Z3开帘单说修改投票信息模块该模块用来修改系统已存在的投票相关信息。为了确保信息的公正性,当某个投票信息被更新时,该投票对应投票记录,包括投票票数以及投票人信息都被清空。当单击投票编号对应的编辑链接,进入修改投 票信息界面。腌nt ITU T-SU捲萃:吝抿罕内容悴要洪型单准
17、 事社 足乏汗放亠丘杏单击新增加一个投票选项,可以为当前投票增加子选项。增加投票 选项的代码。观察发现,在员原选项下面增加了一个新的选项。单击投票选项后 面的“删除”链接,可以删除对应的选票选项。查找信息模块该模块允许管理员根据投票主题查找对应的投票信息。当单击后台 主页查找投票链接后,进入查找投票界面。输入查询的内容并单击“确 定”按钮,系统显示符合条件的投票信息。修改密码模块通过该模块可以修改登录管理员的登录密码。单击修改密码连接进入修改界面。输入提示信息并单击“确认”按钮即可修改密码,如果旧密码不正确或者两次输入的新密码不一致, 系统会给出错误的提示信息 创建新管理员模块通过该模块可以创
18、建一个新的管理员。单击创建新管理员链接,进 入创建管理员的界面。输入相关的信息并单击“确定”按钮可以创建一 个新的管理员,如果输入有误或者所输入用户名已经不存在,系统给出 错误的提示信息。投票模块该模块负责显示投票信息给用户并处理投票过程。当投票人进入投票页面。选择并单机:下一步“按钮,系统显示投票结果界面1are you帛mil irp1輩100fti呂ga唱1 0%三、结论和体会3.1 结论随着网络应用的日益普及, 投票的形式也发生了很大的变化。 目前在很多的 场合,投票已经开始由原始方式转变为网上投票。 由于具有方便、 快捷、成本低、 调查范围广等优点, 网上投票已经被广泛的应用。 如何
19、管理好网上投票信息内容 也变得十分的重要,我们所设计开发的投票管理系统, 正是基于这种需求诞生的。本投票管理系统分为用户提供网上投票和投票信息管理两大类功能。 通过投 票管理功能可以完成增加新投票、 修改原有投票信息、 查找投票等功能。 本系统 的界面友好、操作简便,适用于任何网站进行投票调查。3.2 体会这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去 做,困难在你的勇气和毅力下是抬不了头的。 从做这个课程设计开始无论遇到什 么困难,我都没有一丝的放弃的念头。 出于对知识的渴望, 出于对新技术的好奇, 出于对一切未知的求知。我完成了这次课程设计,不过这只是我学习路上的驿站,
20、我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的, just doit !语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为 外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!我很庆幸我参加了这次课程设计,让我确实打开了眼界。四、附录附录A其它图表创紡时间2011-12-V7 闪汚仁 19123开敢11占皂123开战|睪诜Th.c 1120111249 20;埔;輛123单诜TA jl_ =E.yitjfily3L. doing01 1 IZ-佰触:恥:旧1Z3幵放单选L. feI HIM 三 H附录B主要程序代码创建用户package sunyan
21、g.vote.acti on. adm in;import java.text.SimpleDateFormat;import java.util.Cale ndar;import java.util.Date;import sunyan g.vote.actio n.rootactio n.Admi nRoot;import sunyan g.vote.doma in. Adm in;SuppressWar nin gs(serial)public class Createadmin extends AdminRoot private static final String CREATEAD
22、MINERROR createAdminError;Overridepublic String execute() throws Exception / 通过用户名查找管理员信息Admin a = adminService.findAdminByName(name);/ 如果不为空,说明已经存在if (a != null) addActionError(getText(adminexist);return CREATEADMINERROR; else Date date = Calendar.getInstance().getTime();newSimpleDateFormat formatt
23、er =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.vote.action.admin;import java.text.SimpleDate
24、Format;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;SuppressWarnings(serial)public class Login ext
25、ends AdminRoot Overridesessionpublic String execute() throws Exception HttpSessionServletActionContext.getRequest().getSession();if(session.getAttribute(rand)=null)return ERROR;/ 获得图形校验码String sf = (String) session.getAttribute(rand);/ 如果图形校验码正确,判断帐号、密码是否正确if (sf.equals(safecode) Admin admin = admin
26、Service.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.findVoteCountByTy pe(new Integer(1);/ 设置多选投票个数count2.setMultiCou
27、nt(voteService.findVoteCountByType(new Integer(0);/ 设置所有投票个数 count2.setAllCount(voteService.findVoteCount();session.setAttribute(count2, count2);/ 获得当前系统时间并格式化,存入管理员登录时间Date date = Calendar.getInstance().getTime();SimpleDateFormat formatter = newSimpleDateFormat(yyyy-MM-dd HH:mm:ss);String dateStrin
28、g = 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.HttpSession;import org.apache.struts2.ServletActionContext;im
29、port com.opensymphony.xwork2.ActionSupport;SuppressWarnings(serial)public class Logout extends ActionSupport Overridepublic String execute() throws Exception HttpSession sessionServletActionContext.getRequest().getSession();session.invalidate();return SUCCESS;投票根目录package sunyang.vote.action.rootact
30、ion;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)public class VoteContextRoot extends ActionSupport /* param context*
31、子选项内容,数组类型* 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
32、list2;protected Integer votecontextId;protected Integer type;protected Integer publish;protected Map map;public Integer getPublish() return publish;public void setPublish(Integer publish) this.publish = publish;public Integer getType() return type;public void setType(Integer type) this.type = type;p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省黄冈市季黄梅县重点达标名校2025届中考联考生物试卷含解析
- 2025届江苏省苏州市新区一中学中考三模生物试题含解析
- 2025届江苏省泰兴市达标名校中考生物猜题卷含解析
- 云南省施甸县2025届毕业升学考试模拟卷生物卷含解析
- 湖北省利川市重点中学2025届中考猜题生物试卷含解析
- 河北省承德兴隆县联考2025届中考生物对点突破模拟试卷含解析
- 合同授权委托书模板
- 离婚协议范本正规范本年
- 大数据云计算解决方案与服务合同
- 员工实习劳动合同样本
- 2024年中考语文复习分类必刷:非连续性文本阅读(含答案解析)
- 紧密型县域医疗卫生共同体慢病管理中心运行指南试行等15个指南
- YYT 0681.11-2014 无菌医疗器械包装试验方法 第11部分:目力检测医用包装密封完整性
- 辽宁省沈阳市第七中学2023-2024学年七年级下学期期末数学试题
- 2024年湖南工业职业技术学院单招职业技能测试题库附答案
- 快速入门穿越机-让你迅速懂穿越机
- 水利安全生产风险防控“六项机制”右江模式经验分享
- 2024年四川省成都市高新区中考数学二诊试卷
- 幼儿园卫生保健开学培训
- 食材配送服务售后服务方案
- 矿井主要灾害事故防治应急避灾知识培训课件
评论
0/150
提交评论