Bonjour à tous.

J'ai un problème au niveau d'une servlet et j'ai du mal à comprendre les méthodes doGet() et doPost(). Par ailleurs, je n'ai pas trouvé de réponse à mon problème sur le Web, alors je m'en remets à vous.

J'ai donc une Servlet, qui exécute bien la méthode processRequest() ou la méthode doPost() dans le cas où l'on utilise le formulaire de la page. J'ai ensuite voulu tester la méthode doGet() (pour récupérer des paramètres situés dans des liens sur la page), mais depuis elle est exécuté directement au lieu de processRequest().

Voici la Servlet en question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
 
@WebServlet(urlPatterns = {"/Directorio"})
public class Directorio extends HttpServlet {
 
    private Statement statement = null;
    private Connection conexion = null;
    private ResultSet resultado = null;
    private PrintWriter out;
 
 
    private String DBUser = "root";
    private String DBPass = "";
    private String DBC = "com.mysql.jdbc.Driver";
    private String ConnDB = "jdbc:mysql://127.0.0.1:3306/diputaciondb";
    //private String ConnDB = "jdbc:mysql://172.16.61.172:3306/DB1";
    private String query = "";
 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException, SQLException, ClassNotFoundException {
            response.setContentType("text/html;charset=UTF-8");
            out = response.getWriter();
        try {
            query = "select * from USUARIOS;";
            tablaDirectorio(query);
         } finally {            
            out.close();
        }
    }
 
 
 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
 
 
            out = response.getWriter();
            out.println("WORKING?");
 
 
    }
 
@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            String param = request.getParameter("directorio-buscar");
            out = response.getWriter();
            if (param.length()!=0) {
                    query = "select * from USUARIOS where NOMBRE LIKE '%"+param+"%' or  APELLIDOS LIKE '%"+param+"%' or  TELEFONO LIKE '%"+param+"%';";
                try {
                    tablaDirectorio(query);
                    //out.println("3"+param+"--"+query);
                } catch (ClassNotFoundException ex) {
                    Logger.getLogger(Directorio.class.getName()).log(Level.SEVERE, null, ex);
                } catch (SQLException ex) {
                    Logger.getLogger(Directorio.class.getName()).log(Level.SEVERE, null, ex);
                }
 
            }
}
 
protected void tablaDirectorio(String query) throws ClassNotFoundException, SQLException {
        out.println("<div id='directorio-opciones'>");
        out.println("<form action='/Diputacion/busquedaDirectorio.jsp' method='post'>");
        out.println("<input type='text' maxlength='20' size='45' name='directorio-buscar'>");
        out.println("<input type='button' name='directorio-buscarBoton' value='Buscar en el directorio'>");
        out.println("</form><br></div>");
        out.println("<center><table class='directorio-table' cellspacing='0'>");
        out.println("<tr><th scope='col'>Nombre</th><th scope='col'>Apellido</th><th scope='col'>Teléfono</th><th width=24></th><th width=24></th></tr>");
 
        Class.forName(DBC);
        conexion = DriverManager.getConnection(ConnDB, DBUser, DBPass);
	statement = (Statement) conexion.createStatement();
        resultado = statement.executeQuery(query);
        while (resultado.next()) {
            out.println("<tr><td>"+resultado.getString("NOMBRE")+"</td><td>"+resultado.getString("APELLIDOS")+"</td><td>"+resultado.getString("TELEFONO")+"</td>");
            out.println("<td><a href='busquedaDirectorio.jsp?edit="+resultado.getString("DNI")+"'><img src='img/Modify.png' alt='Modificar usuario' width=14 height=14></a></td><td><a href='busquedaDirectorio.jsp?delete="+resultado.getString("DNI")+"'><img src='img/Erase.png' alt='Eliminar usuario' width=14 height=14></a></td></tr>");
        }
        resultado.close();
        statement.close();
 
        out.println("</table></center>");
    }
 
    protected void eliminarUsuario(String DNI) throws SQLException, ClassNotFoundException{
      Class.forName(DBC);
      Connection conn = DriverManager.getConnection(ConnDB, DBUser, DBPass);
 
      query = "delete from USUARIOS where DNI = ?";
      PreparedStatement preparedStmt = conn.prepareStatement(query);
      preparedStmt.setInt(1, 3);
 
      preparedStmt.execute();
 
      conn.close();
    }
 
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
Quelqu'un a une idée ou une indication ? Merci d'avance pour votre aide.