vote.jsp <%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%>
startvote.jsp <%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%>
vote.jsp <%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%>
startvote.jsp <%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%>
vote.jsp和startvote.jsp代码一样的?
<%@ page contentType="text/html;charset=GB2312"%> <%@ page import="java.sql.*"%> <%@ page import="java.io.*"%>
<%!//记录总票数的变量: 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 people WHERE name =" + "'" + name + "'"); rs.next(); int count = rs.getInt("count"); count++; String condition = "UPDATE people SET count = " + count + " WHERE name=" + "'" + 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 people"); out.print("
" + "姓名"); out.print(" | " + "得票数");
out.print(" | " + "总票数:" + total); out.print(" |
---|---|---|
" + rs.getString(1) + " | "); int count = rs.getInt(2); out.print("" + count + " | "); double b = (count * 100) / total; // 得票的百分比。 out.print("" + b + "%" + " | "); out.print("