使用SpringMVC完成一个简单的留言板
时间: 2024-06-08 18:09:21 浏览: 165
好的,下面给出一个简单的留言板的实现步骤:
1. 创建一个 Maven 项目,引入 SpringMVC 相关依赖,包括 spring-webmvc、spring-context、spring-jdbc、spring-tx 等。
2. 在 web.xml 中配置 DispatcherServlet,并指定加载 SpringMVC 的配置文件。
```xml
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
```
3. 创建 SpringMVC 的配置文件 spring-mvc.xml,在其中配置视图解析器、扫描包、数据源等。可以使用 JdbcTemplate 来操作数据库。
```xml
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 扫描包 -->
<context:component-scan base-package="com.example.controller"></context:component-scan>
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!-- 配置 JdbcTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
```
4. 创建一个 Controller 类,用于处理用户请求。这里以留言板为例,提供添加留言和查询留言列表的功能。
```java
@Controller
public class MessageController {
@Autowired
private JdbcTemplate jdbcTemplate;
@RequestMapping("/addMessage")
public String addMessage(Message message) {
String sql = "insert into message(name, content) values(?, ?)";
jdbcTemplate.update(sql, message.getName(), message.getContent());
return "redirect:/listMessages";
}
@RequestMapping("/listMessages")
public String listMessages(Model model) {
String sql = "select * from message";
List<Message> messages = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Message.class));
model.addAttribute("messages", messages);
return "listMessages";
}
}
```
5. 创建一个实体类 Message,用于表示留言的信息。
```java
public class Message {
private int id;
private String name;
private String content;
// getter and setter
}
```
6. 创建两个 JSP 页面,分别用于添加留言和显示留言列表。
addMessage.jsp:
```html
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加留言</title>
</head>
<body>
<h2>添加留言</h2>
<form action="${pageContext.request.contextPath}/addMessage" method="post">
姓名:<input type="text" name="name"><br>
内容:<textarea name="content"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
listMessages.jsp:
```html
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>留言列表</title>
</head>
<body>
<h2>留言列表</h2>
<table border="1">
<tr>
<th>ID</th>
<th>姓名</th>
<th>内容</th>
</tr>
<c:forEach var="message" items="${messages}">
<tr>
<td>${message.id}</td>
<td>${message.name}</td>
<td>${message.content}</td>
</tr>
</c:forEach>
</table>
<br>
<a href="${pageContext.request.contextPath}/addMessage">添加留言</a>
</body>
</html>
```
7. 启动 Tomcat,访问 http://localhost:8080/ 网址即可进入添加留言页面,添加留言后可以查看留言列表。
阅读全文