JSP课设:投票管理系统(附源码+调试)

JSP投票管理系统

JSP投票管理系统概述

(1)投票用户:浏览投票系统栏目,参与投票,并实时查投票结果
(2)投票系统后台新增投票:可以选择投票频道(足球、篮球等等)、输入投票名称,输入选项名称,管理员可自由设置选项多少;投票管理:可以删除投票任务;新增频道:为了符合众多用户的选择,可以根据自己需求添加新的频道。

代码链接:https://pan.baidu.com/s/1F7dEBfny5aAU_AKpLpwCiA
提取码:3pxo

代码截图

选民界面
在这里插入图片描述
新增投票
在这里插入图片描述
投票管理
在这里插入图片描述
新增频道
在这里插入图片描述

核心代码

数据库链接代码

package com.sanqing.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBConnection {
	private static final String DBDRIVER = "com.mysql.jdbc.Driver" ;			//驱动类类名
    private static final String DBURL = "jdbc:mysql://localhost:3306/db_votemanage";//连接URL
    private static final String DBUSER = "root" ;								//数据库用户名
    private static final String DBPASSWORD = "123456";							//数据库密码
	public static Connection getConnection(){
		Connection conn = null;													//声明一个连接对象
		try {
			Class.forName(DBDRIVER);											//注册驱动
			conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);		//获得连接对象
		} catch (ClassNotFoundException e) {									//捕获驱动类无法找到异常
			e.printStackTrace();										
		} catch (SQLException e) {												//捕获SQL异常
			e.printStackTrace();
		}
		return conn;
	}
	public static void close(Connection conn) {//关闭连接对象
		if(conn != null) {				//如果conn连接对象不为空
			try {
				conn.close();			//关闭conn连接对象对象
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	public static void close(PreparedStatement pstmt) {//关闭预处理对象
		if(pstmt != null) {				//如果pstmt预处理对象不为空
			try {
				pstmt.close();			//关闭pstmt预处理对象
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	public static void close(ResultSet rs) {//关闭结果集对象
		if(rs != null) {				//如果rs结果集对象不为null
			try {
				rs.close();				//关闭rs结果集对象
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

用户界面:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>体育赛事投票系统</title>
    <LINK HREF="style.css" TYPE="text/css" REL="stylesheet">
	<style type="text/css">
	<!--
	.STYLE14 {color: #FF0000}
	.STYLE15 {font-family: tahoma; font-size: 11px;}
	.STYLE17 {color: #003300}
	-->
	</style>
  </head>
  
  <body>
	 <table width="100%"  border="0" cellspacing="0" cellpadding="0">
	  <tr>
	    <td>&nbsp;</td>
	    <td width="642" align="left" valign="top"><table width="642"  border="0" cellspacing="0" cellpadding="0">
	      <tr>
	        <td height="37" align="left" valign="top" background="images/menu.jpg">
	        	<!--导航栏-->
		        <div style="padding-left:42px; padding-top:10px">
		        	<a href="showVoteByChannel.action?channelID=1" class="style2" style="text-decoration:none ">NBA</a>
		        	<img src="images/spacer.gif" width="74" height="1">
		        	<a href="showVoteByChannel.action?channelID=2" class="style2" style="text-decoration:none ">CBA</a>
		        	<img src="images/spacer.gif" width="55" height="1">
		        	<a href="showVoteByChannel.action?channelID=3" class="style2" style="text-decoration:none ">足球世界杯</a>
		        	<img src="images/spacer.gif" width="33" height="1">
		        	<a href="showVoteByChannel.action?channelID=4" class="style2" style="text-decoration:none ">中超</a>
		        	<img src="images/spacer.gif" width="68" height="1">
		        	<a href="showVoteByChannel.action?channelID=5" class="style2" style="text-decoration:none ">英超</a>
		        	<img src="images/spacer.gif" width="64" height="1">
		        	<a href="showVoteByChannel.action?channelID=6" class="style2" style="text-decoration:none ">F1</a>
		        </div>
	        </td>
	      </tr>
	      <tr>
	        <td align="left" valign="top"><table width="642"  border="0" cellspacing="0" cellpadding="0">
	          <tr align="left" valign="top">
	            <td width="427" height="100%" align="right"><table width="426" height="100%"  border="0" cellpadding="0" cellspacing="0">
	              <tr>
	                <td align="left" valign="top"><table width="426"  border="0" cellpadding="0" cellspacing="0" background="images/line_1.jpg">
	                  <tr>
	                    <td height="22" align="left" valign="middle" background="images/kattle_1.jpg" class="style2">&nbsp;&nbsp;最新投票</td>
	                  </tr>
	                  <tr>
	                    <td height="518" align="left" valign="top"><div style="padding-left:18px; padding-top:16px; padding-bottom:20px">
	                     <s:actionerror/>
	                     <s:iterator value="#request.voteResultList" var="voteResult">
	                     	<p class="style2">${voteResult.vote.voteName}</p>
	                     	 <form action="doVote.action" method="post">
	                     	 <p class="style2">
	                     	<s:iterator value="#voteResult.voteOptions" var="voteOption">
	                     		<input type="radio" name="voteOptionID" value="${voteOption.voteOptionID}">${voteOption.voteOptionName}<br>
	                     	</s:iterator>
	                     		<input type="radio" name="voteOptionID" value="0">其它<br>
	                     		<input type="text" name="otherOption">
	                     		<input type="hidden" name="voteID" value="${voteResult.vote.voteID}">
	                     		<input type="hidden" name="channelID" value="${voteResult.vote.channelID}">
	                     		<a href="voteResult?voteID=${voteResult.vote.voteID}">查看投票结果</a>
	                     	</p>
	                     	<p>
							<input type="submit" value="投票">
							<input type="reset" value="重置">
							</p>
							</form>
	                     </s:iterator>
	                     <s:if test="#request.voteResultList.size == 0">
	                     	没有任何投票内容!
	                     </s:if>
						</div>
						<div align="center" style="font-size: 12px">
							<s:if test="#request.page.hasPrePage">
								<a href="showVoteByChannel?channelID=${channelID}&&currentPage=1">首页</a> | 
								<a href="showVoteByChannel?channelID=${channelID}&&currentPage=${page.currentPage -1 }">上一页</a>
							</s:if>
							<s:else>
								首页 | 上一页
							</s:else>
							<s:if test="#request.page.hasNextPage">
								<a href="showVoteByChannel?channelID=${channelID}&&currentPage=${page.currentPage + 1 }">下一页</a> | 
								<a href="showVoteByChannel?channelID=${channelID}&&currentPage=${page.totalPage }">尾页</a>
							</s:if>
							<s:else>
								下一页 | 尾页
							</s:else>
						</div>	
						 </td>
	                  </tr>
	                  <tr>
	                    <td align="left" valign="top"><img src="images/kettle_2.jpg" width="426" height="2"></td>
	                  </tr>
	                </table></td>
	              </tr>
	            </table></td>
	            <td width="215" height="100%" align="right"><table width="203" height="100%"  border="0" cellpadding="0" cellspacing="0">
	              <tr>
	                <td align="left" valign="top"><table width="203" height="613"  border="0" cellpadding="0" cellspacing="0" background="images/line_3.jpg">
	                  <tr>
	                    <td height="22" align="left" valign="middle" background="images/kettle_5.jpg" class="style9 STYLE14">&nbsp;<span class="STYLE15">&nbsp;<span class="STYLE17">热门投票</span></span></td>
	                  </tr>
	                  <tr>
	                    <td align="left" valign="top"><div style="padding-left:19px; padding-top:14px; padding-bottom:10px"></div>
	                      <ol>
	                        <li class="style7">你最喜欢的NBA球员</li>
	                        <li class="style7">你最喜欢的NBA中锋</li>
	                      </ol></td>
	                  </tr>
	                  <tr>
	                    <td height="2" align="left" valign="top"><img src="images/bot_1.jpg" width="203" height="2"></td>
	                  </tr>
	                </table></td>
	              </tr>
	              <tr>
	                <td height="11" align="left" valign="top"><img src="images/spacer.gif" width="1" height="11"></td>
	              </tr>
	            </table></td>
	          </tr>
	        </table></td>
	      </tr>
	      <tr>
	        <td height="12" align="left" valign="top"><img src="images/spacer.gif" width="1" height="12"></td>
	      </tr>
	      <tr>
	        <td align="left" valign="top" background="images/rep_1.jpg" style="background-repeat:repeat-x; background-position:top left "><div align="center" style="padding-top:14px"></div>
	          <div style="padding-left:5px; padding-top:3px">
	            <div align="center" class="style8">体育赛事投票系统 &copy;2009-2010 </div>
	          </div></td>
	      </tr>
	    </table></td>
	    <td>&nbsp;</td>
	  </tr>
	  <tr>
	    <td>&nbsp;</td>
	    <td width="642" align="left" valign="top">&nbsp;</td>
	    <td>&nbsp;</td>
	  </tr>
	</table>
  </body>
</html>


新增投票界面

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>新增投票</title>
	<script type="text/javascript" language="javascript">
		var i = 4;
		function addVoteOption(){
			var voteP = document.getElementById("voteOptionList");
			var inputText = document.createTextNode("选项" + (i++) +"名称:");
			voteP.appendChild(inputText);
			var inputP = document.createElement("input");
			inputP.type="text";
			inputP.name="voteOption";
			voteP.appendChild(inputP);
			var brP = document.createElement("<br>");
			voteP.appendChild(brP);
		}
	</script>
</head>
<body>
	<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="30"><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="15" height="30"><img src="images/tab_03.gif" width="15" height="30" /></td>
        <td width="1101" background="images/tab_05.gif"><img src="images/311.gif" width="16" height="16" /> <span style="font-size: 12px">新增投票</span></td>
        <td width="281" background="images/tab_05.gif"></td>
        <td width="14"><img src="images/tab_07.gif" width="14" height="30" /></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="9" background="images/tab_12.gif">&nbsp;</td>
        <td bgcolor="#f3ffe3">
        <div style="padding-left: 100px;padding-top: 10px;font-size: 12px">
	       	<form action="addVote.action" method="post" name="addForm">
			<!-- edit by damonbian -->
			<!-- 
	  		选择投票频道:<select name="channel">
	  			<option value="1">NBA</option>
	  			<option value="2">CBA</option>
	  			<option value="3">足球世界杯</option>
	  			<option value="4">中超</option>
	  			<option value="5">英超</option>
	  			<option value="6">F1</option>
	  		</select><br/>
			 -->
	  		选择投票频道:<select name="channel">
	  		<s:iterator value="#request.channels" var="channel">
	  			<option value="${channel.channelID }">${channel.channelName }</option>
	  		</s:iterator>
	  		</select><br/>			 
	  		请输入投票名称:<input type="text" name="voteName"/><br/>
	  		<div id="voteOptionList">
	  		选项1名称:<input type="text" name="voteOption"/><br/>
	  		选项2名称:<input type="text" name="voteOption"/><br/>
	  		选项3名称:<input type="text" name="voteOption"/><br/>
	  		</div>
	  		<input type="button" value="新增投票选项" onclick="addVoteOption()"/>
	  		<input type="submit" value="发布"/>
	  		<input type="reset" value="重置"/>
  		</form>
  		</div>
  	</td>
        <td width="9" background="images/tab_16.gif">&nbsp;</td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td height="29"><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="15" height="29"><img src="images/tab_20.gif" width="15" height="29" /></td>
        <td background="images/tab_21.gif">&nbsp;</td>
        <td width="14"><img src="images/tab_22.gif" width="14" height="29" /></td>
      </tr>
    </table></td>
  </tr>
</table>
</body>
</html>

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值