Редактирование и удаление элементов коллекции в веб-проекте

господа программисты. Немного осваиваю язык Java, нужна помощь с заданием. У нас есть веб-проект, в котором есть несколько jsp-страничек, сервлетов, класс с пользователями и singleton (класс DatabaseSimulation). В проекте уже реализовано добавление новых пользователей в ArrayList. Нужна помощь с реализацией редактирования и удаления этих пользователей. Немного непонятно, как это делать. Знаю, что в ArrayList удалять можно, используя remove. Но как это реализовать в веб-проекте? И можно ли это сделать динамически (чтобы, кликая на иконки редактирования/удаления), удаление, например, происходило сразу, в зависимости от того, рядом с каким элементом кликнули на иконку (с редактированием так же).

Ниже будет имеющийся на данный момент код. Класс User и DatabaseSimulation:

    package entities;
    import java.util.Objects;
    public class User {
        private String name;
        private String password;
        public User() {
        }
        public User(String name, String password) {
            this.name = name;
            this.password = password;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        @Override
        public String toString() {
            return "User{" +
                    "name='" + name + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            User user = (User) o;
            return name.equals(user.name) &&
                    password.equals(user.password);
        }
        @Override
        public int hashCode() {
            return Objects.hash(name, password);
        }
    }
    package model;
    import entities.User;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.stream.Collectors;
    public class DatabaseSimulation {
        private static DatabaseSimulation instance = new DatabaseSimulation();
        private static List<User> model;
        public static DatabaseSimulation getInstance() {
            return instance;
        }
        private DatabaseSimulation() {
            model = new ArrayList<>();
        }
        public static void clear() {
            model.remove("littlefox");
        }
        public void add(User user) {
            model.add(user);
        }
public static void deleteUser() {
 
        Iterator<User> it = model.iterator();
        while (it.hasNext()) {
            User user = it.next();
            if (user.getName().equals("littlefox")) {
                it.remove();
            }
        }
        public List<String> list() {
            return model.stream()
                    .map(User::getName)
                    .collect(Collectors.toList());
        }
    }

Сервлет добавления нового пользователя и сервлет вывода:

package servlets;
import entities.User;
import model.DatabaseSimulation;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/adduser.jhtml")
public class AddServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("name");
        String password = req.getParameter("pass");
        List<String> errors = new ArrayList<>();
        if (name.equals(" ")) {
            errors.add("Введите логин!");
        }
        if (password.equals(" ")) {
            errors.add("Введите пароль!");
        }
        if (errors.isEmpty()) {
            User user = new User(name, password);
            DatabaseSimulation databaseSimulation = DatabaseSimulation.getInstance();
            databaseSimulation.add(user);
            req.setAttribute("userName", name);
            doGet(req, resp);
        } else {
            req.setAttribute("errors", errors);
        }
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/WEB-INF/jsp/addUser.jsp");
        requestDispatcher.forward(req, resp);
    }
}
package servlets;
import model.DatabaseSimulation;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/userpage.jhtml")
public class ListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        DatabaseSimulation databaseSimulation = DatabaseSimulation.getInstance();
        List<String> names = databaseSimulation.list();
        req.setAttribute("userNames", names);
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/WEB-INF/jsp/userPage.jsp");
        requestDispatcher.forward(req, resp);
    }
}

Jsp-странички для добавления пользователя и вывода пользователей:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>List of users</title>
</head>
<body>
<form method="post">

    <c:if test="${userNames != null}">
    <table border='1'>
        <c:forEach var="names" items="${userNames}" >
            <tr>
                <td><c:out value="${names}"/></td>
                <td><img src='https://img.icons8.com/dotty/18/000000/edit.png' title='Edit a user' /></td>
                <td><a href='<c:url value="/deleteuser.jhtml" ><c:param name="user" value="littlefox"/></c:url>' onClick=submit()><img src='https://img.icons8.com/dotty/18/000000/delete-sign.png'title='Remove user'/></a></td>
            </tr>
        </c:forEach>
    </table>
    </c:if>


    <p><img src='https://img.icons8.com/dotty/30/000000/add.png' title='Add user'
            onclick="location.href='/adduser.jhtml'"/></p>
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Добавить пользователя</title>
</head>
<body>
<%
    if (request.getAttribute("userName") != null) {
        out.println("<p>Пользователь '" + request.getAttribute("userName") + "' добавлен!</p>");
    }
%>
<form method="post">
    <p><label>Name:
        <input type="text" name="name">
    </label></p>
 
    <p><label>Password:
        <input type="password" name="pass"><br/>
    </label></p>
    <c:if test="${not empty errors}">
        <div style="color: red"><c:out value="Введите все данные!"/></div>
    </c:if>
    <button type="submit">Добавить</button>
</form>
</body>
</html> 

Ответы (0 шт):