JSP+Servlet培训班作业管理系统[13]–人员修改功能的实现

简介: 本文目录1. 本章任务2. 添加修改按钮3. 在RouteServlet中添加用户编辑页面跳转4. 新增用户编辑页面5. 处理编辑提交请求6. 测试验证

1. 本章任务

前面章节中已经实现了人员信息的浏览和新增,本章继续实现人员信息修改的功能。


2. 添加修改按钮

在表格的每一行添加修改的超级链接,点击后跳转RouteServlet,同时还需要传递操作类型method=editUser,最后还需要传递被编辑的用户的id。


注意传递操作类型是为了让RouteServlet知道跳转到用户编辑页面,传递用户id是为了后台查询出用户信息后传给用户编辑页面,因为用户编辑页面默认要加载用户当前信息。


 <table>

 <thead>

  <tr>

   <th>编号</th>

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

   <td><a

    href="/HomeworkSystem/RouteServlet?childPage=userEdit.jsp&userId=${item.userId}">编辑</a></td>

  </tr>

 </c:forEach>

</table>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

3. 在RouteServlet中添加用户编辑页面跳转

如果是用户编辑的请求,需要根据用户id加载用户信息


public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

 // 设置输入输出格式、编码

 response.setContentType("text/html");

 request.setCharacterEncoding("utf-8");

 response.setCharacterEncoding("utf-8");

 // 获取用户在网页输入的用户名和密码

 String childPage = request.getParameter("childPage");

 request.setAttribute("childPage", childPage);

 if (childPage.equals("userManage.jsp")) { // 进入人员管理页面需要携带人员列表信息

  UserDao userDao = new UserDao();

  List<User> users = userDao.getUsers();

  request.setAttribute("users", users);

 } else if (childPage.equals("userEdit.jsp")) {

  UserDao userDao = new UserDao();

  String userId = request.getParameter("userId");

  User user = userDao.getById(userId);

  request.setAttribute("user", user);

 }

 request.getRequestDispatcher("/index.jsp").forward(request, response);// 跳转到index.jsp

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

此处需要在UserDao中编写一个通过id获取用户的方法,如下:


/**

 * 通过id获取用户

 */

public User getById(String userId) {

 Connection conn = null;

 PreparedStatement ps = null;

 ResultSet rs = null;

 try {

  conn = DbUtils.getConnection();

  String sql = "select * from user where user_id=? ";

  ps = conn.prepareStatement(sql);

  ps.setString(1, userId);

  rs = ps.executeQuery();

  if (rs.next()) {

   return makeOneUser(rs);

  } else {

   return null;

  }

 } catch (SQLException e) {

  System.out.println(e.toString());

  return null;

 } finally {

  DbUtils.releaseConnection(rs, ps, conn);

 }

}

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

4. 新增用户编辑页面

新增用户编辑页面userEdit.jsp。


注意该页面进来的时候,需要显示当前编辑用户的信息,注意表单中还需要保存下userId信息,便于提交表单后确定当前修改的用户。


<%@ 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>userEdit.jsp</title>

</head>

<body>

<form action="/HomeworkSystem/UserServlet?method=userEdit"

 method="post">

 <table>

  <tr>

   <td>编号:</td>

   <td><input type="text" name="userId" value="${user.userId}"

    readonly /></td>

  </tr>

  <tr>

   <td>姓名:</td>

   <td><input type="text" name="userName" value="${user.userName}" />

   </td>

  </tr>

  <tr>

   <td>密码:</td>

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

    value="${user.userPassword}" /></td>

  </tr>

  <tr>

   <td>角色:</td>

   <td><select name="userRole" value="${user.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

32

33

34

35

36

37

38

39

5. 处理编辑提交请求

在UserServlet中处理编辑提交请求,注意处理完毕也是返回用户列表页面。


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

 } else if (method.equals("userEdit")) {// 编辑用户

  // 获取用户在网页输入的用户名和密码

  User user = new User();

  user.setUserId(Integer.parseInt(request.getParameter("userId")));

  user.setUserName(request.getParameter("userName"));

  user.setUserPassword(request.getParameter("userPassword"));

  user.setUserRole(request.getParameter("userRole"));

  // 保存到数据库

  userDao.update(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

33

6. 测试验证

重启tomcat,验证之,大功告成!

image.png

image.png

image.png

相关文章
|
3月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
107 0
|
5月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
57 3
|
5月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
53 1
|
5月前
|
供应链 前端开发 Java
服装库存管理系统 Mybatis+Layui+MVC+JSP【完整功能介绍+实现详情+源码】
该博客文章介绍了一个使用Mybatis、Layui、MVC和JSP技术栈开发的服装库存管理系统,包括注册登录、权限管理、用户和货号管理、库存管理等功能,并提供了源码下载链接。
服装库存管理系统 Mybatis+Layui+MVC+JSP【完整功能介绍+实现详情+源码】
|
5月前
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
5月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
137 0
|
5月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
37 0
|
5月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
7月前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
134 12
|
7月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
153 10