阿房投票问卷管理系统V1.2
一 文件列表
\style.css 样式表
\questionnaire.sql SQL Server数据库生成脚本文件
\shpowquestion.jsp 显示投票
\thanks.jsp 投票结果确认
\showresult.jsp 用户查看投票结果(受管理员限制)
\opendata.jsp 打开数据库
\convert.jsp 处理中文字符串及换行的自定义函数文件
\admin\check.jsp 检查管理员是否已经登陆 ,嵌入各管理功能页面中
\admin\opendata.jsp 打开数据库
\admin\convert.jsp 处理中文字符串及换行的自定义函数文件
\admin\login.jsp 管理员登陆
\admin\chkadmin.jsp 验证密码
\admin\mainform.jsp 管理主界面
\admin\result.jsp 管理员查看投票结果
\admin\adpoll.jsp 添加问题
\admin\savedata.jsp 储存数据
\admin\delete.jsp 删除投票
\admin\edit1.jsp 方式B编辑投票
\admin\modify.jsp 方式B保存重新编辑结果
\admin\resetcount.jsp 将投票结果清零
\admin\isvisable.jsp 设置投票主题是否在前台显示
\admin\member.jsp 用户管理界面
\admin\adduser.jsp 添加用户
\admin\deluser.jsp 删除用户
\admin\edituser.jsp 修改用户密码
\admin\moduser.jsp 保存修改结果
\admin\edit.jsp 方式B编辑投票
\admin\editquestion.jsp 方式B编辑标题
\admin\modquestion.jsp 方式B保存编辑标题结果
\admin\edititem.jsp 方式B编辑选项
\admin\moditem.jsp 方式B保存编辑选项结果
\admin\additem.jsp 方式B保存增加选项结果
\admin\delitem.jsp 方式B删除选项
二 数据库表结构
用SQL Server建立数据库
数据库名:questionnaire
Questions表
QuestionID 索引投票主题
Questions 存储投票主题内容
Isvisable 标识投票是否在前台显示
Date 记录投票发布时间
IsOpen 标识投票结果是否向投票用户公开
Items表
ItemID 索引投票选项
QuestionID 关联投票主题
Item 存储投票选项内容
ItemCount 投票记数
Admins表
AdminName 管理员用户名
AdminPwd 管理员密码
三 说明
1)管理员登陆帐号和密码都是admin。
2)数据库连接方式是使用JDBC For SQL Server驱动。用户使用时要修改opendata.jsp文件,修改SQL Server登陆用户名和密码。
3)目前的数据库连接、访问、修改都是通过页面完成,效率不是太高,在新版本中将使用JavaBeans实现。
4)新版本将添加如下功能:管理员权限设置、投票主题发布可选择单选或多选、投票者留言反馈等。
5)这是我用JSP做的第一个小项目,希望能与更多的朋友交流,我的信箱:fangpeng8118@21cn.com (阿房)
jsp 投票系统
需积分: 0 156 浏览量
更新于2008-05-24
收藏 32KB RAR 举报
**JSP投票系统详解**
JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML、XML或者其他标记语言中嵌入Java代码,以实现服务器端的业务逻辑处理。在这个"阿房投票问卷管理系统 V1.2"中,我们可以深入探讨JSP在构建投票系统中的应用。
1. **JSP基础**
- JSP页面结构:一个JSP页面由静态内容(HTML、CSS、JavaScript)和动态脚本(Java代码)组成。动态脚本可以是脚本元素(Scriptlets)、表达式、声明和指令。
- JSP生命周期:包括翻译阶段、类加载阶段、实例化阶段、初始化阶段、服务阶段、清理阶段和销毁阶段。
- JSP与Servlet关系:JSP最终会被转换为Servlet,由Web容器执行。
2. **数据库连接**
- JDBC(Java Database Connectivity)是Java中用于访问数据库的标准API,它提供了与各种数据库建立连接、发送SQL语句、处理结果集等功能。
- 数据库连接池:在投票系统中,通常会使用连接池来管理数据库连接,如C3P0、Apache DBCP或HikariCP,以提高性能和资源利用率。
- SQL操作:创建投票表,包括投票主题、选项、投票人等字段,并设计适当的索引以优化查询效率。
3. **用户交互**
- 表单提交:JSP通过HTML表单收集用户投票信息,使用POST或GET方法将数据提交到服务器。
- 表单验证:在客户端(JavaScript)和服务器端(JSP)进行数据验证,防止非法投票。
- 会话管理:使用session跟踪用户状态,确保每个用户只能投一次票。
4. **业务逻辑处理**
- 投票逻辑:处理用户的投票请求,更新数据库中的投票记录。
- 结果统计:根据投票记录计算每个选项的得票数,可能需要使用SQL聚合函数如COUNT()。
- 结果展示:生成投票结果页面,可以以图表形式展示,例如条形图、饼图,使用JSP内置对象或者第三方库如Chart.js。
5. **安全性**
- SQL注入防护:使用预编译语句(PreparedStatement)避免SQL注入攻击。
- CSRF(跨站请求伪造)防护:添加CSRF令牌,验证请求来源的合法性。
- 权限控制:限制未登录用户或特定用户群体的投票权限。
6. **设计模式**
- MVC(Model-View-Controller)模式:JSP作为视图,Servlet或JavaBean作为控制器,数据库模型作为模型,分离业务逻辑和表现层。
- DAO(Data Access Object)模式:封装数据库操作,提高代码复用性和可测试性。
7. **部署与运行**
- 配置Web服务器:如Tomcat、Jetty等,将JSP应用部署到服务器上。
- URL映射:设置URL规则,使用户能够访问投票页面和结果页面。
总结,"阿房投票问卷管理系统 V1.2"是一个使用JSP技术构建的系统,它涵盖了数据库交互、用户认证、业务逻辑处理、安全性等多个方面,展示了JSP在实际项目中的应用能力。通过学习这个系统,开发者可以加深对JSP的理解,提升开发动态Web应用的技能。