jsp在线投票系统实验

本文介绍了一个基于jsp的在线投票系统实验,包括数据库设计、主题查看、投票操作、管理员功能以及发起新投票的流程。数据库包含administrator、topic和optionlist三张表,管理员界面允许设置投票状态,用户可以查看并参与开启的投票。
摘要由CSDN通过智能技术生成

(1)数据库的建立

本次投票系统使用的是Mysql数据库。我共建了3张表:administrator表、topic表、optionlist表。administrator表是用户表,记录了管理员的帐号和密码;topic表是主题表,这张表记录了所有已存在的投票主题,其中的关键属性有投票主题的idtopic_id、开启或关闭的状态status以及该投票是单选或多选的属性issingleoption表是选项表,所有主题的所有选项都记录在此表,其中相同主题的选项拥有相同的主题id,此id为外码,参照的是topic表的topic_id属性,这样就可以将相同主题的属性关联在一起。数据库设计如下图:

 

(2)每个投票主题的查看

在用户打开投票系统的首页时,会看到所有已存在的投票主题,包括开启和关闭的投票,在每个主题后有一个状态属性,用于显示该主题是否开启。而每一个主题都是一个超链接,点击超链接可以查看此主题的详细信息以及进入投票等。实现这个功能其实很简单,我是遍历了一遍topic表,并将所有主题以超链接的形式输出,每个主题的超链接是带着该主题的主题号链接到一个servlet的,通过这个servlet进行数据库的访问,将该主题号的所有选项输出,这样就可以看到每个主题的选项以及相应的信息。核心代码如下:

<%

    if(session.getAttribute("username")!=null)

        session.removeAttribute("username");

    Class.forName("com.mysql.jdbc.Driver");

    String url = "jdbc:mysql://localhost:3306/vote";

    Connection conn = DriverManager.getConnection(url,"root","root");

    Statement stmt = conn.createStatement();

    String sql = "select topic_id,topic_name,status from topic";

    ResultSet rs = stmt.executeQuery(sql);

    int i = 1;

    out.print("<p><table border='5'>");

    while(rs.next()){

        out.print("<tr>");

        int topic_id = rs.getInt(

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值