编写基于jsp的留言本代码
时间: 2024-03-10 08:46:43 浏览: 59
基于jsp的留言本设计
这里提供一个简单的基于JSP的留言本代码示例:
1. 数据库表结构设计
创建一个名为message的数据表,包括以下字段:
```
message_id int primary key auto_increment,
message_username varchar(50),
message_content varchar(255),
message_time datetime
```
2. JSP页面设计
留言表单页面:message.jsp
```
<html>
<head>
<title>留言本</title>
</head>
<body>
<h2>留言表单</h2>
<form action="saveMessage.jsp" method="post">
用户名:<input type="text" name="username"><br>
内容:<textarea name="content" rows="5" cols="30"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
留言列表页面:messageList.jsp
```
<html>
<head>
<title>留言列表</title>
</head>
<body>
<h2>留言列表</h2>
<table border="1">
<tr>
<th>ID</th>
<th>用户名</th>
<th>内容</th>
<th>时间</th>
</tr>
<%
// 使用JavaBean和JDBC技术从数据库中检索留言信息
List<Message> messageList = MessageDao.getMessageList();
for (Message message : messageList) {
%>
<tr>
<td><%= message.getId() %></td>
<td><%= message.getUsername() %></td>
<td><%= message.getContent() %></td>
<td><%= message.getTime() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
```
3. JavaBean设计
创建一个名为Message的JavaBean,包括以下属性和方法:
```
public class Message {
private int id;
private String username;
private String content;
private Date time;
// 省略getter和setter方法
}
```
4. 数据库交互代码
创建一个名为MessageDao的Java类,包括以下方法:
- `addMessage(Message message)`:将留言信息插入到数据库中;
- `getMessageList()`:从数据库中检索留言信息。
```
public class MessageDao {
// 数据库连接信息
private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/message";
private static final String USER = "root";
private static final String PASS = "password";
public static void addMessage(Message message) {
Connection conn = null;
PreparedStatement stmt = null;
try {
// 加载JDBC驱动
Class.forName(JDBC_DRIVER);
// 建立数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建PreparedStatement对象
String sql = "insert into message (message_username, message_content, message_time) values (?, ?, ?)";
stmt = conn.prepareStatement(sql);
// 设置参数
stmt.setString(1, message.getUsername());
stmt.setString(2, message.getContent());
stmt.setTimestamp(3, new Timestamp(message.getTime().getTime()));
// 执行SQL语句
stmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放资源
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static List<Message> getMessageList() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
List<Message> messageList = new ArrayList<>();
try {
// 加载JDBC驱动
Class.forName(JDBC_DRIVER);
// 建立数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建Statement对象
String sql = "select * from message";
stmt = conn.createStatement();
// 执行SQL语句
rs = stmt.executeQuery(sql);
// 处理查询结果
while (rs.next()) {
Message message = new Message();
message.setId(rs.getInt("message_id"));
message.setUsername(rs.getString("message_username"));
message.setContent(rs.getString("message_content"));
message.setTime(rs.getTimestamp("message_time"));
messageList.add(message);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放资源
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return messageList;
}
}
```
5. 处理留言提交的代码
创建一个名为saveMessage.jsp的JSP页面,用于处理留言表单提交的请求,包括以下内容:
- 获取用户提交的留言信息;
- 创建一个Message对象,并将留言信息设置到对象中;
- 调用MessageDao的addMessage方法,将留言信息插入到数据库中;
- 跳转到留言列表页面。
```
<%@ page import="java.util.Date" %>
<%@ page import="com.example.Message,com.example.MessageDao" %>
<%
// 获取用户提交的留言信息
String username = request.getParameter("username");
String content = request.getParameter("content");
Date time = new Date();
// 创建Message对象
Message message = new Message();
message.setUsername(username);
message.setContent(content);
message.setTime(time);
// 将留言信息插入到数据库中
MessageDao.addMessage(message);
// 跳转到留言列表页面
response.sendRedirect("messageList.jsp");
%>
```
以上是一个简单的基于JSP的留言本代码示例,仅供参考。实际开发中可能需要根据具体需求进行修改和完善。
阅读全文