Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de suppression dans la base de donnée.

    2 mars 2015 à 8:20:32

    Bonjours à tous,

    J'ai un problème de suppression d'un enregistrement dans ma table étudiant.Au fait quand je tente de supprimer un enregistrement j'ai l'erreur suivante :

    Etat HTTP 405 - La méthode HTTP GET n''est pas supportée par cette URL


    typeRapport d''état

    messageLa méthode HTTP GET n''est pas supportée par cette URL

    descriptionLa méthode HTTP spécifiée n''est pas autorisée pour la ressource demandée.


    Apache Tomcat/7.0.54



    Voici le code de la méthode de suppression depuis mon EtudiantDaoImpl(classe qui implemente l'interface contenant les methode d'ajout,selection,et suppression):
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import static DAO.DAOUtilitaire.*;
    import DAOException.DAOException;
    import LesObjets.Etudiant;
    
    public class EtudiantDaoImpl implements EtudiantDao {
        private static final String SelectionCons = "call SelectionEtudiant()";
        private static final String insertionEtudiant = "call AjoutEtudiant(?,?,?,?)";
        private static final String suppressionEtudiant = "call SuppressionEtudiant(?)";
        //private static final String selectionParEtudiant = null;
        private DAOFactory daoFactory;
       
        EtudiantDaoImpl(DAOFactory daoFactory){
            this.daoFactory = daoFactory;
        }
    
    @Override
        public void SupprimerEtudiant(Etudiant supprimeEtudiant) throws DAOException {
            Connection connexion = null;
            PreparedStatement preparedStatement = null;
            try{
                connexion = daoFactory.getConnection();
                preparedStatement = connexion.prepareStatement(suppressionEtudiant);
               
                preparedStatement.setString(1, supprimeEtudiant.getNumEtudiant());
                int confirmationSup = preparedStatement.executeUpdate();
               
                if(confirmationSup == 0){
                    throw new DAOException("Suppression reussie.");
                }else{
                    supprimeEtudiant.setNumEtudiant(null);
                }
            }catch(SQLException s){
                throw new DAOException(s);
            }finally{
                fermeturesSilencieuses(preparedStatement,connexion);
            }
           
        }
    }
    



    Voici le code de la servlet de suppression :

    package TPServlet;
    
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    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 javax.servlet.http.HttpSession;
    
    import DAO.EtudiantDao;
    import DAOException.DAOException;
    import LesObjets.Etudiant;
    import DAO.DAOFactory;
    
    
    @WebServlet("/supprimeEtudiant")
    public class supprimeEtudiant extends HttpServlet {
        private static final long serialVersionUID = 1L;
        private static final String matriculeCons = "matricule";
        private static final String sessionEtudiant = "etudiants";
        private static final String etudiantsCons = "/listeEtudiant";
        private static final String confDAOFActory = "daoFactory";
        private EtudiantDao etudiantDao;
       
        public void init() throws ServletException {
            this.etudiantDao = ((DAOFactory) getServletContext().getAttribute(confDAOFActory)).getEtudiantDao();
        }
          
        protected void doGet(HttpServletRequest request, HttpServletResponse response, String listeEtudiant) throws ServletException, IOException {
            String matricule = request.getParameter(matriculeCons);
           
            HttpSession session = request.getSession();
            Map<String,Etudiant> etudiants = (HashMap<String, Etudiant>) session.getAttribute(sessionEtudiant);
            if(matricule != null && etudiants != null){
                try{
                    Etudiant etudiant = new Etudiant();
                    etudiantDao.SupprimerEtudiant(etudiants.get(matricule));
                    etudiant.setNumEtudiant(null);
                    etudiants.remove(matricule);
    
                }catch(DAOException d){
                    d.printStackTrace();
                }
                session.setAttribute(sessionEtudiant, etudiants);
            }
            response.sendRedirect(request.getContextPath() + etudiantsCons);
        }
    
    }





    Voici comment j'ai creer le lien dans la jsp :

    <td><a href = "<c:url value = "/supprimeEtudiant"><c:param name = "matricule" value = "${mapEtudiant.key}"/></c:url>"><img src = "<c:url value = "/inc/sup.png"/>" alt = "Supprimer"/></a></td>

    Quand je pointe la souris sur l'enregistrement que je veux supprimer je constate un changement au niveau du matricule qui permet de faire la suppression,par exemple quand je pointe sur l'étudiant ayant le matricule "001/IAI/2001" j'ai l'url suibante : http://localhost:12150/TP/supprimeEtudiant?matricule=001%2fIAI%2f2001.

    Je me dit que normalement je doit avoir : http://localhost:12150/TP/supprimeEtudiant?matricule=001/IAI/2001.


    Dans la base de données le matricule est de type varchar et String au niveau du bean.


    NB : je travaille en modèle DAO avec les procédures stockées. La sélection et l'insertion fonctionne bien.Je compte sur votre aide.Merci d'avance!!!

    -
    Edité par KaskoIssoufou 2 mars 2015 à 11:38:44

    • Partager sur Facebook
    • Partager sur Twitter
    Jacques Le Roi

    Problème de suppression dans la base de donnée.

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown