首页 > 解决方案 > 使用 JSP 从数据库中删除行

问题描述

我有一个 JSP 和一个 servlet,它允许用户在数据库中添加数据,然后列出数据。我想在每一行旁边添加一个“删除”按钮,该按钮会将其从数据库中删除。

我已经有一个 DAO 来处理删除部分,但是我对 JSP 还是很陌生,所以我不知道如何创建一个可以使用这个 DAO 的按钮。我应该创建第二个 servlet 吗?或者我可以使用我已经必须处理删除功能的那个吗?这是我的代码:

JSP:

<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Utilisateurs</title>
</head>
<body>
    <form method="post" action=ServletUtilisateurs>
        <p>
            <label for="identifiant">Identifiant : </label>
            <input type="text" name="identifiant" id="identifiant" />
        </p>
        <p>
            <label for="password">Mot de passe : </label>
            <input type="text" name="password" id="password" />
        </p>
        <p>
            <label for="mail">Mail : </label>
            <input type="text" name="mail" id="mail" />
        </p>
        <p>
            <label for="nom">Nom : </label>
            <input type="text" name="nom" id="nom" />
        </p>
        <p>
            <label for="prenom">Prenom : </label>
            <input type="text" name="prenom" id="prenom" />
        </p>

        <input type="submit" value="Envoyer" />
    </form>

        <ul>
            <c:forEach var="utilisateur" items="${ utilisateurs }">
                <li>
                    <c:out value="${ utilisateur.identifiant }" />
                    <c:out value="${ utilisateur.password }" />
                    <c:out value="${ utilisateur.mail }" />
                    <c:out value="${ utilisateur.prenom }" />
                    <c:out value="${ utilisateur.nom }" />
                    <input type="submit" value="Supprimer" />
                </li>
            </c:forEach>
        </ul>

</body>
</html>

小服务程序:

package org.escalade.servlets;

import java.io.IOException;

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 org.escalade.beans.Utilisateur;
import org.escalade.dao.DaoFactory;
import org.escalade.dao.UtilisateurDao;

/**
 * Servlet implementation class ServletUtilisateurs
 */
@WebServlet("/ServletUtilisateurs")
public class ServletUtilisateurs extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private UtilisateurDao utilisateurDao;

    @Override
    public void init() throws ServletException {
        final DaoFactory daoFactory = DaoFactory.getInstance();
        this.utilisateurDao = daoFactory.getUtilisateurDao();
    }

    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServletUtilisateurs() {
        super();
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        final Utilisateur utilisateurs = new Utilisateur();
        request.setAttribute("utilisateurs", this.utilisateurDao.list());
        this.getServletContext().getRequestDispatcher("/WEB-INF/Utilisateurs.jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        final Utilisateur utilisateur = new Utilisateur();

        utilisateur.setIdentifiant(request.getParameter("identifiant"));
        utilisateur.setPassword(request.getParameter("password"));
        utilisateur.setMail(request.getParameter("mail"));
        utilisateur.setNom(request.getParameter("nom"));
        utilisateur.setPrenom(request.getParameter("prenom"));

        final Utilisateur utilisateurs = new Utilisateur();
        this.utilisateurDao.createUtilisateur(utilisateur);

        request.setAttribute("utilisateurs", this.utilisateurDao.list());

        this.getServletContext().getRequestDispatcher("/WEB-INF/Utilisateurs.jsp").forward(request, response);
    }

}

提前致谢

标签: javajspservlets

解决方案


推荐阅读