📄 startvote.jsp
字号:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<html>
<body>
<%! //记录总票数的变量:
int total=0;
//操作总票数的同步方法:
synchronized void countTotal()
{ total++;
}
%>
<% boolean vote=true;//决定用户是否有权投票的变量。
//得到被选择的候选城市名字:
String name="";
name=request.getParameter("name");
if(name==null)
{name="?";
}
byte a[]=name.getBytes("ISO-8859-1");
name =new String(a);
//得到投票人的IP地址:
String IP=(String)request.getRemoteAddr();
//加载桥接器:
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
Connection con=null;
Statement sql=null;
ResultSet rs=null;
//首先查询IP表,判断该用户的IP地址是否已经投过票:
try { con=DriverManager.getConnection("jdbc:odbc:vote","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM IP WHERE IP = "+"'"+IP+"'");
int row=0;
while(rs.next())
{ row++;
}
if(row>=1)
{ vote=false; //不允许投票。
}
}
catch(SQLException e)
{ }
if(name.equals("?"))
{ out.print("您没有投票,没有权利看选举结果");
}
else
{
if(vote)
{ out.print("您投了一票");
//将总票数加1:
countTotal();
//通过连接数据库,给该候选人增加一票,
//同时将自己的IP地址写入数据库 。
try
{ rs=sql.executeQuery("SELECT * FROM city WHERE city = "+"'"+name+"'");
rs.next();
int count=rs.getInt("count");
count++;
String condition=
"UPDATE city SET count = "+count+" WHERE city="+"'"+name+"'" ;
//执行更新操作(投票计数):
sql.executeUpdate(condition);
//将IP地址写入IP表:
String to=
"INSERT INTO IP VALUES"+"("+"'"+IP+"'"+")";
sql.executeUpdate(to);
}
catch(SQLException e)
{ out.print(""+e);
}
//显示投票后的表中的记录:
try{ rs=sql.executeQuery("SELECT * FROM city");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"城市");
out.print("<TH width=50>"+"得票数");
out.print("<TH width=50>"+"总票数:"+total);
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
int count=rs.getInt("count");
out.print("<TD >"+count+"</TD>");
double b=(count*100)/total; //得票的百分比。
out.print("<TD >"+b+"%"+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e)
{ }
}
else
{out.print("您已经投过票了");
}
}
%>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -