2008-08-07 7 views

Répondre

21

Les variables POST doivent être accessibles via l'objet de requête: HttpRequest.getParameterMap(). L'exception est si le formulaire envoie des données MIME en plusieurs parties (le FORM a enctype = "multipart/form-data"). Dans ce cas, vous devez analyser le flux d'octets avec un analyseur MIME. Vous pouvez écrire le vôtre ou en utiliser un existant comme l'API Apache Commons File Upload.

+7

Remarque: cette réponse est antérieure à la version de Servlet 3.0 et à la prise en charge standard de 'multipate/form-data'. Voir [Java EE 6 API] (http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html) et/ou [ce blog] (http: // balusc. blogspot.com/2009/12/uploading-files-in-servlet-30.html) – McDowell

46

Voici un exemple simple. Je ne me suis pas amusé avec le html ou le servlet, mais vous devriez avoir l'idée.

J'espère que cela vous aide.

<html> 
<body> 
<form method="post" action="/myServlet"> 
<input type="text" name="username" /> 
<input type="password" name="password" /> 
<input type="submit" /> 
</form> 
</body> 
</html> 

Maintenant pour le Servlet

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class MyServlet extends HttpServlet { 
    public void doPost(HttpServletRequest request, 
        HttpServletResponse response) 
     throws ServletException, IOException { 

    String userName = request.getParameter("username"); 
    String password = request.getParameter("password"); 
    .... 
    .... 
    } 
} 
+2

pouvez-vous me demander comment obtenir la valeur de demande POST dans la page de servlet? J'utilise $ .ajax appel pas formulaire d'action et XMLHttpRequest? – selladurai

+0

ma question http://stackoverflow.com/questions/6068510/i-couldnt-get-the-post-value-in-servlet-page – selladurai

1

Les réponses précédentes sont correctes, mais rappelez-vous d'utiliser l'attribut name dans les champs de saisie (formulaire html) ou vous ne serez pas quoi que ce soit. Exemple:

<input type="text" id="username" /> <!-- won't work --> <input type="text" name="username" /> <!-- will work --> <input type="text" name="username" id="username" /> <!-- will work too -->

Tout ce code est HTML valide, mais en utilisant getParameter (java.lang.String) vous aurez besoin de l'attribut name été défini dans tous les paramètres que vous souhaitez recevoir.

Questions connexes