javaweb简单投票系统
时间: 2023-12-16 15:05:57 浏览: 211
以下是一个基于Javaweb的简易投票系统的实现方法:
1.创建数据库表
首先,我们需要创建一个数据库表来存储投票信息。可以创建一个名为vote的表,包含以下字段:
- id:投票ID,自增长整数类型
- title:投票标题,字符串类型
- option_a:选项A,字符串类型
- option_b:选项B,字符串类型
- option_c:选项C,字符串类型
- option_d:选项D,字符串类型
- create_time:创建时间,日期时间类型
2.创建Javaweb项目
接下来,我们需要创建一个Javaweb项目。可以使用Eclipse或者IntelliJ IDEA等开发工具创建一个名为vote的动态Web项目。
3.编写投票页面
在Web项目中,我们需要编写一个投票页面,包含投票标题和四个选项。可以使用HTML和CSS编写一个简单的页面,如下所示:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>投票系统</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f0f0;
}
.container {
margin: 0 auto;
width: 600px;
padding: 20px;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
h1 {
text-align: center;
margin-bottom: 20px;
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 10px;
font-weight: bold;
}
input[type="text"] {
width: 100%;
padding: 10px;
border-radius: 5px;
border: 1px solid #ccc;
box-sizing: border-box;
}
input[type="submit"] {
display: block;
margin: 0 auto;
padding: 10px 20px;
background-color: #4CAF50;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="container">
<h1>投票系统</h1>
<form action="vote" method="post">
<div class="form-group">
<label for="title">投票标题:</label>
<input type="text" id="title" name="title" required>
</div>
<div class="form-group">
<label for="option_a">选项A:</label>
<input type="text" id="option_a" name="option_a" required>
</div>
<div class="form-group">
<label for="option_b">选项B:</label>
<input type="text" id="option_b" name="option_b" required>
</div>
<div class="form-group">
<label for="option_c">选项C:</label>
<input type="text" id="option_c" name="option_c" required>
</div>
<div class="form-group">
<label for="option_d">选项D:</label>
<input type="text" id="option_d" name="option_d" required>
</div>
<input type="submit" value="提交">
</form>
</div>
</body>
</html>
```
4.编写Servlet
在Javaweb项目中,我们需要编写一个Servlet来处理投票请求。可以创建一个名为VoteServlet的Servlet,实现doGet和doPost方法。在doPost方法中,我们需要获取投票信息并将其保存到数据库中。
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class VoteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public VoteServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String title = request.getParameter("title");
String optionA = request.getParameter("option_a");
String optionB = request.getParameter("option_b");
String optionC = request.getParameter("option_c");
String optionD = request.getParameter("option_d");
Date createTime = new Date();
Connection conn = null;
PreparedStatement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/vote?useSSL=false", "root", "123456");
stmt = conn.prepareStatement("INSERT INTO vote (title, option_a, option_b, option_c, option_d, create_time) VALUES (?, ?, ?, ?, ?, ?)");
stmt.setString(1, title);
stmt.setString(2, optionA);
stmt.setString(3, optionB);
stmt.setString(4, optionC);
stmt.setString(5, optionD);
stmt.setTimestamp(6, new java.sql.Timestamp(createTime.getTime()));
stmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
response.sendRedirect("success.html");
}
}
```
5.编写成功页面
最后,我们需要编写一个成功页面,用于提示用户投票信息已经成功保存到数据库中。可以使用HTML和CSS编写一个简单的页面,如下所示:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>投票系统</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f0f0;
}
.container {
margin: 0 auto;
width: 600px;
padding: 20px;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
h1 {
text-align: center;
margin-bottom: 20px;
}
p {
text-align: center;
margin-bottom: 20px;
font-size: 24px;
font-weight: bold;
color: #4CAF50;
}
</style>
</head>
<body>
<div class="container">
<h1>投票系统</h1>
<p>投票信息已经成功保存到数据库中!</p>
</div>
</body>
</html>
```
阅读全文