小型投票系统的JSP实现

最近刚好要用投票系统,可是服务器没有php的环境,所以一直徘徊于asp、aspx和jsp之间。网上现成的投票系统很多,功能丰富,架设不复杂。然而要么是商业版,要么是缩水版,终究不能令我满意。负责这件事情的两位朋友由于我不可预知的原因一直没有给我准确信息。拖延多达数周之后,正赶上清明节放假,于是我就有了自己写一个的想法。本着 “The simple is best”的原则,我着手准备了。

感谢 Tm3yShell7 、游景帝两位朋友的测试!

功能需求

  • 允许有多个投票活动同时进行
  • 管理投票活动
  • 能够发布图文信息
  • 有一定的限制刷票措施

我的设计思路

  • 针对多个投票活动同时进行,设置一个投票主题表,记录不同的投票活动
  • 发布图文信息可以使用编辑器实现,我用的是kindeditor
  • 限制刷票措施,我采用了最简单的方法。用户注册,然后通过用户编号和投票主题来限制单个用户的投票。由于是已知用户群的范围,并且有明确的邮箱服务,所以再结合真实的邮箱服务,可以做到比较明确的投票限制。但是,不得不说这样做的话,使得系统的通用性大大降低。然而,针对我的实际情况,实用性大大增强。
  • 增加投票选项的留言功能

数据库简单设计

  • user(user_id,user_name,user_pass,email)      //用户表
  • vote_subject(subject_id,subject_name,subject_info)       //投票主题表
  • opition(opition_id,subject_id,opition_count,opition_content,opition_info)       //投票选项表
  • message(msg_id,opition_id,user_id,msg_content)     //留言表
  • vote_record(id,user_id,subject_id)

关于数据库设计的几点说明

之所以把投票记录表(vote_record)中字段选为user_id,是因为用户注册的时候使用的是不可再注册的、真实存在的唯一的,并且经过验证的邮箱。所以,这一点就可以达到针对不同投票活动限制投票的目的。

代码编写

我用的是JSP,由于不会Struts、Spring等技术,只好老老实实写jsp页面调用javabean。因此,代码结构混乱,幸好思路清晰,实现了功能。

最后说一下,务必要对用户输入做检查,过滤脚本或者过滤  < 为 "&lt;",依次类推。建议写一个过滤类,用正则表达式匹配,很强大的。网上有很多这样的东西。

对Get和Post提交的参数,也需要做必要的检查。

其实,mysql防止注入,用预处理完全可以达到。

感想

通过比较集中的编写这个小系统,发现自己掌握的东西实在是少的可怜。每到一个新想法,都得查好半天资料。囫囵吞枣终究不可取,看来以后得改改了。

已有 12 条评论
  1. gasfgadsfgsd

添加新评论