Servlet 入门—小案例2
接着上篇文章,继续我们的小案例。
我们采用 restful 的方式来写我们的后台。
今天来完成新增功能的编写。
1. 编写后台代码
接收请求的 servlet 代码
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 0. 请求中文乱码处理
req.setCharacterEncoding("utf-8");
// 1. 读取表单提交的请求参数
String username = req.getParameter("username");
String dateStr = req.getParameter("birthday");
// 1.1 对日期参数处理
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = dateFormat.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
// 2. 封装成对象
User user = new User();
user.setUserName(username);
user.setBirthday(date);
// 3. 保存数据库
JdbcUtil.save(user);
// 4. 跳转到列表
resp.sendRedirect("./users");
}
数据库工具类 JdbcUtil
package top.lovezhangli.servlet.utils;
import top.lovezhangli.servlet.entity.User;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* Desc: JdbcUtil
* Author: Xu He
* created: 2021/9/18 10:52
*/
public class JdbcUtil {
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void save(User user) {
List<User> userList = new ArrayList<>();
try {
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/servlet_demo", "root", "123456");
String sql = "insert into tb_user(username, birthday) values (?,?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, user.getUserName());
statement.setDate(2, new Date(user.getBirthday().getTime()) );
statement.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. 编写前台页面
<%@ page import="top.lovezhangli.servlet.entity.User" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首页</title>
</head>
<body>
<h2>用户管理系统</h2>
<form action="/ServletDemo/users" method="post">
<table>
<tbody>
<tr>
<td>姓名</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>生日</td>
<td><input type="date" name="birthday"/></td>
</tr>
<tr>
<td><input type="submit" value="添加"/></td>
<td><input type="reset" value="重置"/></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
3. 验证
访问 http://localhost:8080/ServletDemo/add.jsp
填写完表单,点击添加按钮后,查看数据库:
恭喜完成新增功能模块开发,下节课继续列表模块的开发。
如果觉得还不错的话,关注、分享、在看(关注不失联~), 原创不易,且看且珍惜~