用JAVAWEB框架写一个投诉举报系统出示代码
时间: 2023-12-31 18:06:20 浏览: 36
好的,下面是一个简单的投诉举报系统的 Java Web 代码示例,供参考:
1. 创建数据库表
首先,我们需要创建一个数据库表,用于存储用户提交的投诉信息。以下是一个简单的投诉表结构:
```sql
CREATE TABLE `complaints` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '投诉人姓名',
`phone` varchar(20) NOT NULL COMMENT '投诉人电话',
`email` varchar(50) DEFAULT NULL COMMENT '投诉人邮箱',
`content` varchar(255) NOT NULL COMMENT '投诉内容',
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '处理状态,0-未处理,1-已处理',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='投诉举报表';
```
2. 创建 JavaBean
我们需要创建一个 Complaint 实体类,用于封装投诉信息。
```java
public class Complaint {
private int id;
private String name;
private String phone;
private String email;
private String content;
private int status;
private Date createTime;
// 省略 getter 和 setter 方法
}
```
3. 创建 DAO 类
我们需要创建一个 ComplaintDao 类,用于与数据库进行交互。
```java
public class ComplaintDao {
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/complaints_db?useSSL=false";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
// 添加投诉信息
public void addComplaint(Complaint complaint) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "INSERT INTO complaints (name, phone, email, content, status, create_time) VALUES (?, ?, ?, ?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, complaint.getName());
pstmt.setString(2, complaint.getPhone());
pstmt.setString(3, complaint.getEmail());
pstmt.setString(4, complaint.getContent());
pstmt.setInt(5, complaint.getStatus());
pstmt.setTimestamp(6, new Timestamp(complaint.getCreateTime().getTime()));
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
// 查询所有投诉信息
public List<Complaint> getAllComplaints() {
List<Complaint> list = new ArrayList<>();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "SELECT * FROM complaints";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String phone = rs.getString("phone");
String email = rs.getString("email");
String content = rs.getString("content");
int status = rs.getInt("status");
Date createTime = rs.getTimestamp("create_time");
Complaint complaint = new Complaint();
complaint.setId(id);
complaint.setName(name);
complaint.setPhone(phone);
complaint.setEmail(email);
complaint.setContent(content);
complaint.setStatus(status);
complaint.setCreateTime(createTime);
list.add(complaint);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
}
```
4. 创建 Servlet 类
我们需要创建一个 ComplaintServlet 类,用于接收用户提交的投诉信息,并将其保存到数据库中。同时,该类还需要实现查询所有投诉信息的功能。
```java
@WebServlet("/complaint")
public class ComplaintServlet extends HttpServlet {
private ComplaintDao dao = new ComplaintDao();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String name = req.getParameter("name");
String phone = req.getParameter("phone");
String email = req.getParameter("email");
String content = req.getParameter("content");
int status = 0;
Date createTime = new Date();
Complaint complaint = new Complaint();
complaint.setName(name);
complaint.setPhone(phone);
complaint.setEmail(email);
complaint.setContent(content);
complaint.setStatus(status);
complaint.setCreateTime(createTime);
dao.addComplaint(complaint);
resp.sendRedirect(req.getContextPath() + "/list.jsp");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Complaint> list = dao.getAllComplaints();
req.setAttribute("list", list);
req.getRequestDispatcher("/list.jsp").forward(req, resp);
}
}
```
5. 创建 JSP 页面
我们需要创建一个 list.jsp 页面,用于展示所有投诉信息。以下是一个简单的页面示例:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>投诉举报列表</title>
</head>
<body>
<h1>投诉举报列表</h1>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>投诉人</th>
<th>联系电话</th>
<th>联系邮箱</th>
<th>投诉内容</th>
<th>处理状态</th>
<th>创建时间</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="complaint">
<tr>
<td>${complaint.id}</td>
<td>${complaint.name}</td>
<td>${complaint.phone}</td>
<td>${complaint.email}</td>
<td>${complaint.content}</td>
<td>${complaint.status == 0 ? '未处理' : '已处理'}</td>
<td>${complaint.createTime}</td>
</tr>
</c:forEach>
</tbody>
</table>
<hr>
<h2>我要投诉</h2>
<form action="${pageContext.request.contextPath}/complaint" method="POST">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input type="text" name="phone"></td>
</tr>
<tr>
<td>联系邮箱:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>投诉内容:</td>
<td><textarea name="content"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
```
以上就是一个简单的投诉举报系统的 Java Web 代码示例。该示例仅供参考,实际开发中还需要根据具体需求进行修改和完善。