上个月,我网络组在全校范围内,征集LOGO标志,日前比赛结束,共筛选了12件作品进入网投阶段,我花了一个星期做了一个简易的投票系统,把它部署在酷玩网上面,准备在本校国防生内部进行网上投票活动,网址是 http://www.kuwanwang.net/vote/。
由于只是面向本校国防生300多人投票,只对投票做了简单的限制。同一IP总共只能投5票,且不能对同一份作品重复投票。
不幸的是,很快就有几份作品开始刷票了。从数据库里的投票数据看来,基本上集中在同一时间段大量ip对某份作品投票。不过,网投都这样,要想杜绝刷票是很困难的。投票结果仅为最后的定夺作参考而已。晒一下投票涉及的技术吧。
由于系统不大,没有采取structs和hibernate,只是简单的servlet和JavaBean,比较值得一提的是投票结果是用的JfreeChart报表,感觉还不错,它提供饼图和柱形图,但我只使用了柱形图。效果图如下
对投票做了两个限制
1,投票首先检测数据库该ip投票是否超过5票,如果超过,提示每个ip限制投5票,没超过,再检测改ip对该作品是否投过票,如果有记录,提示,已经投过票了,不能重复投票,具体核心代码如下
2,检测投票方式是否为post方式。不允许get方式投票。
另外,在界面美化方面使用了
zDialog v2.0
这是它自带的说明
提取自ZCMS的弹出框:
- 代替window.open、window.alert、window.confirm;提供良好的用户体验;
- 水晶质感,设计细腻,外观漂亮;
- 兼容ie6/7/8、firefox2/3、Opera;弹出框在ie6下不会被select控件穿透;
- 无外部css文件,引用Dialog.js即可使用;
- 对iframe下的应用作了充分考虑,适合复杂的系统应用;
- Dialog显示的内容(三种):1、指向一个URL的iframe窗口;2、页面内隐藏的元素中的html内容;3、直接输出一段html内容;
- 按ESC键可关闭弹出框;
感觉的确比较漂亮,大家可以尝试一下,用起来很简单。
效果图如下
对本系统比较感兴趣的朋友,需要源代码的可以给我发邮件 hustsdy@tom.com,欢迎共同探讨。