1. 本章任务
上一章在人员管理页面,已经实现了人员浏览功能,本章继续在人员管理页面,实现新增人员的功能。
2. 增加新增按钮
在表格的下方添加一个新增按钮,点击后通过RouteServlet跳转用户新增页面。
修改userManage.jsp页面如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!-- 使用c:标签需要添加本行代码 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>userManage.jsp</title>
</head>
<body>
<table>
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>角色</th>
</tr>
</thead>
<c:forEach items="${users}" var="item">
<tr>
<td>${item.userId}</td>
<td>${item.userName}</td>
<td>${item.userRole}</td>
</tr>
</c:forEach>
</table>
<a href="/HomeworkSystem/RouteServlet?childPage=userAdd.jsp">新增</a>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
3. 添加新增页面
点击新增超链接后,会经过RouteServlet跳转userAdd.jsp页面,所以添加一个userAdd.jsp页面如下。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!-- 使用c:标签需要添加本行代码 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>userAdd.jsp</title>
</head>
<body>
<form action="/HomeworkSystem/UserServlet?method=userAdd" method="post">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="userPassword" /></td>
</tr>
<tr>
<td>角色:</td>
<td><select name="userRole">
<option value="master">校长</option>
<option value="teacher">老师</option>
<option value="student">学生</option>
</select></td>
</tr>
</table>
<input type="submit" value="保存"></input>
</form>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
根据上面的代码可知,用户新增页面打开后,可以输入姓名、密码,并选择该用户所属的角色。
当点击保存时,用户输入的信息会提交给UserServlet,并且传递method参数为userAdd。
4. 通过UserServlet保存新增用户
新建UserServlet,接受jsp页面提交的用户信息,保存到数据库中,然后返回用户列表页面。
注意此时要重新加载用户列表数据,以便展示最新的所有用户信息。
@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 处理post请求
// 设置输入输出格式、编码
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// 获取method参数
String method = request.getParameter("method");
// 用户操作数据库
UserDao userDao = new UserDao();
if (method.equals("userAdd")) {// 新增用户
// 获取用户在网页输入的用户名和密码
User user = new User();
user.setUserName(request.getParameter("userName"));
user.setUserPassword(request.getParameter("userPassword"));
user.setUserRole(request.getParameter("userRole"));
// 保存到数据库
userDao.add(user);
}
// 携带最新用户数据到人员管理页面
request.setAttribute("users", userDao.getUsers());
// 跳转到管理后台页面,且子页面是用户管理
request.setAttribute("childPage", "userManage.jsp");
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
5. 测试
登录后点击左侧人员管理:
点击新增按钮,输入新增用户的信息后点击保存。
点击保存后会跳转人员管理页面,发现新增用户的信息已经可以显示了。