Domanda

Qual è l'equivalente Java di PHP $_POST?Dopo aver cercato sul web per un'ora, non sono ancora arrivato a niente.

È stato utile?

Soluzione

Tuo HttpServletRequest l'oggetto ha un getParameter(String paramName) metodo che può essere utilizzato per ottenere i valori dei parametri. http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)

Altri suggerimenti

Ecco un semplice esempio.Non mi sono divertito con l'HTML o il servlet, ma dovresti farti un'idea.

Spero che questo ti aiuti.

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

Ora per il 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");
    ....
    ....
  }
}

Le variabili POST dovrebbero essere accessibili tramite l'oggetto richiesta: HttpRequest.getParameterMap().L'eccezione si verifica se il modulo invia dati MIME in più parti (il FORM ha enctype="multipart/form-data").In tal caso, è necessario analizzare il flusso di byte con un parser MIME.Puoi scriverne uno tuo o usarne uno esistente come Apache Caricamento file Commons API.

Le risposte precedenti sono corrette ma ricorda di utilizzare l'attributo name nei campi di input (modulo html) altrimenti non otterrai nulla.Esempio:

<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 -->

Tutto questo codice è valido HTML, ma utilizzando getParameter(java.lang.String) sarà necessario che l'attributo name sia impostato in tutti i parametri che desideri ricevere.

Per ottenere tutti i parametri del post c'è Map che contiene il nome del parametro di richiesta come chiave e il valore del param come chiave.

Map params = servReq.getParameterMap();

E per ottenere parametri con nome noto è normale

String userId=servReq.getParameter("user_id");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top