系统介绍
一个网站的发展壮大靠的就是众多用户的支持,一个好的网站一定要注意与用户之间信息的交流,及时得到用户反馈信息,并及时改进,这也是一个网站持续发展的基础。也正是由于该原因,网络上各式各样的投票系统层出不穷。接下来的项目,就是来编制一个在线投票系统,该系统可以对投票数量进行累加、查询统计票数等操作。
操作注意事项
1.在进行投票操作时,一个小时内只能投一次票。
效果图显示:


代码如下:
数据库建库建表代码:

create database votedb;
create table users(id int(10) auto_increment primary key,ip varchar(20) not null,lastTime long(8) not null
);
create table vote(id int(10) auto_increment primary key,title varchar(50) not null,num int not null
);
insert into users(ip, lastTime) values('001',1),('002',2),('003',3),('004',4);
insert into vote(title, num) values('潘玮柏',20),('周杰伦',30),('justin',40),('杨非同',25);

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>在线投票系统</title>
</head>
<body><h1>在线投票系统</h1><div><a href = "vote.jsp"><input type ="button" value = "在线投票"/></a><br/><a href = "showVote.jsp"><input type ="button" value = "投票结果"/></a></div></body>
</html>

vote.jsp

<%@page import="com.valuebean.UserSingle"%>
<%@page import="com.valuebean.voteSingle"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.ResultSet"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<jsp:useBean id="db" class = "com.database.DB" scope = "session"></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">.a{border: 1px solid;}
</style>
<title>在线投票</title>
</head>
<body><form action="doVote.jsp" method = "post"><table><%ArrayList<voteSingle> votes = db.getVotes();if(votes == null || votes.size() == 0){%><tr><td>无内容可以显示</td></tr><%}else{for(int i = 0, length = votes.size(); i < length; i++){%><tr class = "a"><td class = "a"><%= votes.get(i).getTitle() %></td><td class = "a"><input type = "radio" name = "like" value="<%=votes.get(i).getId()%>"></input></td></tr><br/><%}}%><tr><td><input type = "submit" value = "提交"/></td><td><input type = "reset" value = "重置"/></td><td><a href = "index.jsp"><input type = "button" value = "返回主界面"></a></td><td><a href = "showVote.jsp"><input type = "button" value = "显示投票结果"></a></td></tr></table></form>
</body>
</html>

doVote.jsp

<%@page import="com.valuebean.voteSingle"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@page import="java.util.Date"%>
<%@page import="com.valuebean.UserSingle"%>
<%@page import="com.toolbean.MyTool"%>
<jsp:useBean id="db" class = "com.database.DB" scope = "session"></jsp:useBean>
<%long cc = 0, dd = 0;int id = MyTool.strToInt(request.getParameter("like"));int flag = -1, i = -1;String sql = "";Date date = new Date();long today = date.getTime();voteSingle v =db.findvote(id);String mes = "";long lastTime = 0;String ip = "005";//String ip = request.getRemoteAddr();UserSingle u = db.findUser(ip);if(u == null){u = new UserSingle();u.setIp(ip);u.setLastTime(today);flag = 0;}else{lastTime = u.getLastTime();cc = today;dd = lastTime;if((today - lastTime) >= 60 * 60 * 1000){flag  = 1;}else{flag = 2;}}if(flag == 0){sql = "insert into users(ip, lastTime) values('"+ip+"','+"+today+"')";i = db.update(sql);if(i < 0){System.out.println("插入user失败!");i = -1;}sql = "update vote set num=num+1 where id="+id;i = db.update(sql);if(i < 0){System.out.println("更新vote表失败(num+1)");i = -1;}}if(flag == 1){sql = "update vote set num=num+1 where id="+id;i = db.update(sql);if(i < 0){System.out.println("更新vote表失败(num+1)");i = -1;}sql = "update users set lastTime ="+today+" where ip= '"+ip+ "'";i = db.update(sql);if(i < 0){System.out.println("更新user表失败lastTime=today");i = -1;}}if(flag == 2){mes = u.getIp()+" 为  "+v.getTitle()+" 投票失败,距离上一次投票不足一小时,上一次投票时间为"+MyTool.formatDate(lastTime);}if(flag == 1){mes = u.getIp()+" 为  "+v.getTitle()+" 投票成功,当前投票时间为:" + MyTool.formatDate(today);}if(flag == 0){mes = u.getIp()+" 为 "+v.getTitle()+" 首次投票成功,当前投票时间为:" + MyTool.formatDate(today);}session.setAttribute("mes", mes);response.sendRedirect("message.jsp");
%>

message.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%String message=(String)session.getAttribute("mes");session.invalidate();
%>
<html><head><title>友情提示</title>     </head><body bgcolor="#F0F0F0"><table><tr><td><%=message %></td></tr><tr height="114"><td align="center" valign="top"><a href="index.jsp"><input type = "button" value = "返回首页"></a><a href="vote.jsp"><input type = "button" value = "继续投票"></a><a href="showVote.jsp"><input type = "button" value = "查看结果"></a></td></tr></table></body>
</html>

showVote.jsp

<%@page import="com.toolbean.MyTool"%>
<%@page import="com.valuebean.voteSingle"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<jsp:useBean id="db" class = "com.database.DB" scope = "session"></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>投票结果</title>
</head>
<body><table><%ArrayList<voteSingle> votes = db.getVotes();int numAll = 0;float picLen = 0;if(votes == null || votes.size() == 0){%><tr><td>无内容可以显示</td></tr><%}else{for(int i = 0, length = votes.size(); i < length; i++){numAll += MyTool.strToInt(votes.get(i).getNum());}for(int i = 0, length = votes.size(); i < length; i++){picLen = MyTool.strToInt(votes.get(i).getNum()) * 145 / numAll;%><tr class = "a"><td class = "a"><%= votes.get(i).getTitle() %></td><td class = "a"><img src="img/l.jpg" width="<%=picLen%>" height = "15"/></td><td class = "a"><%=votes.get(i).getNum()%></td></tr><br/><%}}%><tr><td><a href = "index.jsp"><input type = "button" value = "返回主界面"></a></td><td><a href = "vote.jsp"><input type = "button" value = "在线投票"></a></td></tr></table>
</body>
</html>

DB.java(数据库操作)

package com.database;import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import com.valuebean.UserSingle;
import com.valuebean.voteSingle;import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;public class DB {private String className;private String url;private String username;private String password;private Connection con;private Statement st;private ResultSet res;public DB() {className="com.mysql.jdbc.Driver";url="jdbc:mysql://localhost:3306/votedb";username = "root";password = "3.14159";}public void loadDriver() {try {Class.forName(className);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockSystem.out.println("加载数据库驱动失败!");e.printStackTrace();}}public void getConnection() {loadDriver();try {con = (Connection) DriverManager.getConnection(url, username, password);} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("连接数据库失败!");e.printStackTrace();}}public void getStatement() {getConnection();try {st = (Statement) con.createStatement();} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("获取statement对象失败");e.printStackTrace();}}public void getResultSet(String sql) {if(sql != null && !sql.equals("")) {getStatement();try {res = st.executeQuery(sql);} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("查询数据库失败!");e.printStackTrace();}}}public void closed() {try {if(res != null) {res.close();}if(con != null) {con.close();}if(st != null) {st.close();}} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("关闭数据库失败!");e.printStackTrace();}}public int update(String sql) {int i = -1;if(sql != null && !sql.equals("")) {getStatement();try {i = st.executeUpdate(sql);} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("数据库更新失败!");e.printStackTrace();}finally {closed();}}return i;}public ArrayList<voteSingle> getVotes(){String sql = "select * from vote";getResultSet(sql);ArrayList<voteSingle> votes = new ArrayList<voteSingle>();try {while(res.next()) {voteSingle v = new voteSingle();v.setId(res.getString(1));v.setTitle(res.getString(2));v.setNum(res.getString(3));votes.add(v);}res.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return votes;}public ArrayList<UserSingle> getUsers(){String sql = "select * from users";getResultSet(sql);ArrayList<UserSingle> users = new ArrayList<UserSingle>();try {while(res.next()) {UserSingle u = new UserSingle();u.setId(res.getString(1));u.setIp(res.getString(2));u.setLastTime(res.getLong(3));users.add(u);}res.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return users;}public UserSingle findUser(String ip) {UserSingle u = null;String sql = "select * from users where ip = '" + ip + "'";getResultSet(sql);if(res != null) {try {while(res.next()) {u = new UserSingle();u.setId(res.getString(1));u.setIp(res.getString(2));u.setLastTime(res.getLong(3));}} catch (SQLException e) {// TODO Auto-generated catch blockSystem.out.println("封装users表中数据失败!finduser函数");e.printStackTrace();}finally {closed();}}return u;}public voteSingle findvote(int id) {voteSingle u = new voteSingle();String sql = "select * from vote where id = " + id;getResultSet(sql);if(res == null) {u = null;return u;}else {try {while(res.next()) {u.setId(res.getString(1));u.setTitle(res.getString(2));u.setNum(res.getString(3));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return u;}}
}

UserSingle.java

package com.valuebean;public class UserSingle {private String id;private String ip;private long lastTime;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public long getLastTime() {return lastTime;}public void setLastTime(long lastTime) {this.lastTime = lastTime;}
}

voteSingle.java

package com.valuebean;public class voteSingle {private String id;private String title;private String num;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getNum() {return num;}public void setNum(String num) {this.num = num;}
}

MyTool.java

package com.toolbean;import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;public class MyTool {public static String toChinese(String str) {if(str == null) {str="";}try {str = new String(str.getBytes("ISO-8859-1"),"gb2312");}catch(UnsupportedEncodingException e) {str="";e.printStackTrace();}return str;}public static int strToInt(String str) {if(str == null || str.equals("")) {str = "0";}int i = 0;try {i = Integer.parseInt(str);}catch(NumberFormatException e) {i = 0;e.printStackTrace();}return i;}public static String formatDate(long ms){Date date=new Date(ms);SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String strDate=format.format(date);return strDate;}
}

源码下载点这里

JSP实现在线投票系统相关推荐

  1. JSP+Servlet java在线投票系统

    JSP+Servlet 在线投票系统关于开发环境 1. jdk1.6 2. myeclipse10 3. tomcat6 4. mysql utf-8 使用技术 1. ssh 框架 2. log使用的 ...

  2. 用JSP在线投票系统代码分享

    用JSP在线投票系统代码分享,样式写的不是太好,具体根据需求来设计,希望大家不要太介意. 以下是html/css部分 <style type="text/css">bo ...

  3. 基于Java+JSP+MySQL基于SSM的在线投票系统-计算机毕业设计

    项目介绍 随着社会的发展,人们在处理一些问题的时候不同意见越来越多,这源于人们对思想的解放和对社会的认识.所以在处理同一问题上,为了征求不同人的意见在线投票系统诞生了. 基于SSM的在线投票系统以钦州 ...

  4. java-net-php-python-67ssm在线投票系统计算机毕业设计程序

    java-net-php-python-67ssm在线投票系统计算机毕业设计程序 java-net-php-python-67ssm在线投票系统计算机毕业设计程序 本源码技术栈: 项目架构:B/S架构 ...

  5. java 在线投票_基于javaweb的在线投票系统

    [实例简介] 基于javaweb的在线投票系统,使用SSH框架.用户注册登录后,可以发起投票,管理投票,参与投票,查看投票比例和结果等. [实例截图] [核心代码] Vote └── Vote ├── ...

  6. SSM框架基于JavaWeb在线投票系统的设计与实现源码

     博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 SSM框架基于JavaWeb在线投票系统的设计与实现源码 视频效果 SSM框架基 ...

  7. (附源码)springboot在线投票系统 毕业设计 141307

    基于springboot在线投票系统 摘 要 随着全球Internet的迅猛发展和计算机应用的普及,特别是近几年无线网络的广阔覆盖以及无线终端设备的爆炸式增长,使得人们能够随时随地的访问网络,以获取最 ...

  8. 在线投票系统(限制IP地址,前端界面需要自己美化(很简单))

    如果想要完整的代码,请前往百度云网盘 链接: https://pan.baidu.com/s/1OTOO8GDFNR49eakZtR8Ikg 密码: 1au9 toolbean DB.java too ...

  9. spring boot在线投票系统 毕业设计源码141307

    基于springboot在线投票系统 摘 要 随着全球Internet的迅猛发展和计算机应用的普及,特别是近几年无线网络的广阔覆盖以及无线终端设备的爆炸式增长,使得人们能够随时随地的访问网络,以获取最 ...

最新文章

  1. python翻译文档地址
  2. CTFshow 反序列化 web262
  3. python最基础_python的最基础的知识点
  4. dubbo多网卡时,服务提供者的错误IP注册到注册中心导致消费端连接不上
  5. git 清除 另一个git进程似乎在这个仓库中运行。。。。。
  6. 在多节点集群中运行Cassandra
  7. divi模板下载_Java Math类静态double IEEEremainder(double divi,double divisor)的示例
  8. 天津大学推出大型无人机航拍车辆数据集DroneVehicle
  9. css 定位以及文字超长省略
  10. 20.QT中插件编程
  11. Java 替换字符串中的回车换行符的方法
  12. CCF NOI1028 判断互质
  13. 统计学习三要素的思考
  14. Atitit 拦截数据库异常的处理最佳实践
  15. SketchUp资源网站
  16. java运行环境安装及配置教程
  17. W ndoWs7更新怎么关闭,怎么设置关闭win7自动更新
  18. 文法去除空产生式_文法的二义性和化简
  19. 用Python写一个程序,解密游戏内抽奖的秘密
  20. Windows程序设计设计第一个窗口

热门文章

  1. 2020年A证(安全员)考试试卷及A证(安全员)多少钱
  2. idea的java类图标C不见,取而代之是J标识,且写代码无提示。
  3. ebay 后台HTML有尺寸宽度要求吗,eBay后台基础设置(专题)
  4. 使用@JsonFormat的一个坑
  5. 生活 RH阴性血 AB型
  6. 重磅:保姆级Java技术图谱发布!够学到元宵节了,赶紧收藏!
  7. 平安好医生发布半年报,“关键先生”方蔚豪寻求变阵|看财报
  8. conda配置python混合开发环境一站式入门【全平台】
  9. 潘粤明的《龙岭迷窟》到底怎么样?我用 Python 得出了一些结论!
  10. 非机动车检测,电动车自行车检测