天天看點

JSP+Servlet教育訓練班作業管理系統[12]–人員新增功能的實作

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">

   <td>${item.userId}</td>

   <td>${item.userName}</td>

   <td>${item.userRole}</td>

 </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頁面如下。

<title>userAdd.jsp</title>

<form action="/HomeworkSystem/UserServlet?method=userAdd" method="post">

 <table>

   <td>姓名:</td>

   <td><input type="text" name="userName" /></td>

   <td>密碼:</td>

   <td><input type="text" name="userPassword" /></td>

   <td>角色:</td>

   <td><select name="userRole">

     <option value="master">校長</option>

     <option value="teacher">老師</option>

     <option value="student">學生</option>

   </select></td>

 </table>

 <input type="submit" value="儲存"></input>

</form>

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);

}

32

5. 測試

登入後點選左側人員管理:

JSP+Servlet教育訓練班作業管理系統[12]–人員新增功能的實作

點選新增按鈕,輸入新增使用者的資訊後點選儲存。

JSP+Servlet教育訓練班作業管理系統[12]–人員新增功能的實作

點選儲存後會跳轉人員管理頁面,發現新增使用者的資訊已經可以顯示了。

JSP+Servlet教育訓練班作業管理系統[12]–人員新增功能的實作